JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,在C語言中,我們可以使用json-c庫來進(jìn)行JSON相關(guān)操作。
JSON-C庫提供了一個(gè)JSON對(duì)象結(jié)構(gòu),它定義在json_object.h中:
struct json_object { json_object_type o_type; union data{ boolean c_boolean; double c_double; int c_int; unsigned long long c_ulonglong; struct lh_table *c_object; struct array_list *c_array; char *c_string; }o; };
在我們使用JSON的時(shí)候,通常需要調(diào)用json_c的相關(guān)函數(shù)來進(jìn)行解析或生成JSON數(shù)據(jù)。例如,使用json_object_new_object函數(shù)創(chuàng)建一個(gè)新的JSON對(duì)象:
struct json_object *new_obj = json_object_new_object();
同時(shí),我們可以通過json_object_object_add函數(shù)向JSON對(duì)象中添加key-value鍵值對(duì):
json_object_object_add(new_obj, "name", json_object_new_string("張三")); json_object_object_add(new_obj, "age", json_object_new_int(24));
最后,我們可以將JSON對(duì)象轉(zhuǎn)換成字符串,便于傳輸:
char *json_str = json_object_to_json_string(new_obj);
JSON-C庫不僅提供了創(chuàng)建JSON對(duì)象和轉(zhuǎn)換JSON的功能,還提供了一系列函數(shù)用于JSON對(duì)象的操作。例如:
struct json_object *obj = json_tokener_parse("{\"name\":\"李四\",\"age\":18}"); struct json_object *name_obj = json_object_object_get(obj, "name"); const char *name_str = json_object_get_string(name_obj); printf("姓名:%s\n", name_str);
以上就是C語言中使用JSON-C庫進(jìn)行JSON操作的一些基本方法和函數(shù)。