C語言編程中經(jīng)常需要使用JSON格式進行數(shù)據(jù)交換,如何使用C語言對JSON進行編程呢?以下是一些基本操作。
1. 解析JSON字符串
// 假設有以下JSON字符串 char* json_str = "{\"name\":\"apple\",\"price\":1.2,\"count\":5}"; // 創(chuàng)建JSON對象 json_t* json = json_loads(json_str, 0, NULL); // 解析JSON對象中的值 const char* name = json_string_value(json_object_get(json, "name")); double price = json_real_value(json_object_get(json, "price")); int count = json_integer_value(json_object_get(json, "count")); // 釋放內(nèi)存 json_decref(json);
2. 創(chuàng)建JSON對象
// 創(chuàng)建一個空的JSON對象 json_t* json = json_object(); // 添加鍵值對 json_object_set_new(json, "name", json_string("apple")); json_object_set_new(json, "price", json_real(1.2)); json_object_set_new(json, "count", json_integer(5)); // 將JSON對象轉(zhuǎn)化為JSON字符串并輸出 char* json_str = json_dumps(json, JSON_COMPACT); printf("%s\n", json_str); // 釋放內(nèi)存 free(json_str); json_decref(json);
3. 遍歷JSON對象
// 假設有以下JSON對象 json_t* json = json_object(); json_object_set_new(json, "name", json_string("apple")); json_object_set_new(json, "price", json_real(1.2)); json_object_set_new(json, "count", json_integer(5)); // 遍歷JSON對象 const char* key; json_t* value; json_object_foreach(json, key, value) { // 處理鍵值對 printf("%s: ", key); if(json_is_string(value)) { printf("%s\n", json_string_value(value)); } else if(json_is_real(value)) { printf("%f\n", json_real_value(value)); } else if(json_is_integer(value)) { printf("%d\n", json_integer_value(value)); } } // 釋放內(nèi)存 json_decref(json);
以上是常用的JSON操作,還有更多功能可以到官網(wǎng)查看JSON-C的文檔。