在C語(yǔ)言中,JSON是最常用的數(shù)據(jù)格式之一。有時(shí)候我們需要將一個(gè)JSON數(shù)組轉(zhuǎn)換成JSON對(duì)象。這個(gè)過(guò)程在C語(yǔ)言中可以使用json-c庫(kù)來(lái)完成。
首先,我們需要在C程序中引入json-c頭文件:
#include <json-c/json.h>
接下來(lái),我們可以創(chuàng)建一個(gè)json-c的對(duì)象,并初始化為JSON對(duì)象:
struct json_object *json_obj; json_obj = json_object_new_object();
使用json_object_new_object()函數(shù)可以創(chuàng)建一個(gè)新的JSON對(duì)象。
接下來(lái),我們需要從JSON數(shù)組中獲取JSON對(duì)象,并將它們添加到j(luò)son_obj中:
struct json_object *json_arr; json_arr = json_object_new_array(); struct json_object *obj1, *obj2; //從JSON數(shù)組中獲取JSON對(duì)象 obj1 = json_object_array_get_idx(json_arr, 0); obj2 = json_object_array_get_idx(json_arr, 1); //將JSON對(duì)象添加到JSON對(duì)象中 json_object_object_add(json_obj, "obj1", obj1); json_object_object_add(json_obj, "obj2", obj2);
使用json_object_array_get_idx()函數(shù)可以從JSON數(shù)組中獲取JSON對(duì)象。然后使用json_object_object_add()函數(shù)將JSON對(duì)象添加到JSON對(duì)象中。
最后,我們可以使用json_object_to_json_string()函數(shù)將json_obj轉(zhuǎn)換成JSON字符串:
char *json_str; json_str = json_object_to_json_string(json_obj);
使用json_object_to_json_string()函數(shù)可以將JSON對(duì)象轉(zhuǎn)換成JSON字符串。
上述就是將JSON數(shù)組轉(zhuǎn)換成JSON對(duì)象的步驟,下面是完整的代碼:
#include <json-c/json.h> int main() { struct json_object *json_obj; json_obj = json_object_new_object(); //創(chuàng)建JSON數(shù)組 struct json_object *json_arr; json_arr = json_object_new_array(); //向JSON數(shù)組中添加JSON對(duì)象 struct json_object *obj1, *obj2; obj1 = json_object_new_object(); obj2 = json_object_new_object(); json_object_array_add(json_arr, obj1); json_object_array_add(json_arr, obj2); //從JSON數(shù)組中獲取JSON對(duì)象并添加到JSON對(duì)象中 obj1 = json_object_array_get_idx(json_arr, 0); obj2 = json_object_array_get_idx(json_arr, 1); json_object_object_add(json_obj, "obj1", obj1); json_object_object_add(json_obj, "obj2", obj2); //將JSON對(duì)象轉(zhuǎn)換成JSON字符串 char *json_str; json_str = json_object_to_json_string(json_obj); printf("%s\n", json_str); return 0; }
在上述代碼中,我們通過(guò)json_object_array_add()函數(shù)來(lái)向JSON數(shù)組中添加JSON對(duì)象。最后使用printf()函數(shù)來(lái)輸出JSON字符串。