c json是一個(gè)用于處理JSON格式數(shù)據(jù)的C語言庫。在進(jìn)行數(shù)據(jù)的傳輸和存儲(chǔ)時(shí),JSON是一種非常常見的數(shù)據(jù)格式。c json庫提供了對JSON格式數(shù)據(jù)的解析、存儲(chǔ)和處理的功能。
在使用c json庫進(jìn)行JSON數(shù)據(jù)的存儲(chǔ)時(shí),可以使用以下函數(shù):
json_object * json_object_new_object(void); json_object * json_object_new_array(void); void json_object_object_add(json_object* jso, const char* key, json_object* val); void json_object_array_add(json_object* jso, json_object* val); enum json_tokener_error json_tokener_parse(const char *str, int len, struct json_object **obj, char **error);
其中,json_object_new_object()
函數(shù)用于創(chuàng)建一個(gè)空的JSON對象,json_object_new_array()
函數(shù)用于創(chuàng)建一個(gè)空的JSON數(shù)組。通過json_object_object_add()
函數(shù)和json_object_array_add()
函數(shù)可以向JSON對象和數(shù)組中添加相應(yīng)的數(shù)據(jù)。
使用json_tokener_parse()
函數(shù)可以將JSON格式的字符串解析為JSON對象或數(shù)組。解析成功后,函數(shù)會(huì)返回一個(gè)指向json_object結(jié)構(gòu)體的指針,可以通過這個(gè)指針獲取解析后的JSON數(shù)據(jù)。
下面是一個(gè)示例代碼,用于將一個(gè)JSON對象保存為JSON格式的文件:
#include <stdio.h>#include <json-c/json.h>int main() { json_object *jobj = json_object_new_object(); json_object_object_add(jobj, "name", json_object_new_string("Tom")); json_object_object_add(jobj, "age", json_object_new_int(25)); FILE* fp = fopen("data.json", "w"); if(fp == NULL) { printf("Error opening file!\n"); return 1; } const char* json_str = json_object_to_json_string(jobj); fwrite(json_str, strlen(json_str), 1, fp); fclose(fp); json_object_put(jobj); return 0; }
上述代碼通過json_object_new_object()
函數(shù)創(chuàng)建了一個(gè)空的JSON對象,并使用json_object_object_add()
函數(shù)向該對象中添加了兩個(gè)鍵值對。然后通過json_object_to_json_string()
函數(shù)將JSON對象轉(zhuǎn)換為JSON格式的字符串,并將其保存至文件中。