c json是一个用于处理JSON格式数据的C语言库。在进行数据的传输和存储时,JSON是一种非常常见的数据格式。c json库提供了对JSON格式数据的解析、存储和处理的功能。
在使用c json库进行JSON数据的存储时,可以使用以下函数:
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()
函数用于创建一个空的JSON对象,json_object_new_array()
函数用于创建一个空的JSON数组。通过json_object_object_add()
函数和json_object_array_add()
函数可以向JSON对象和数组中添加相应的数据。
使用json_tokener_parse()
函数可以将JSON格式的字符串解析为JSON对象或数组。解析成功后,函数会返回一个指向json_object结构体的指针,可以通过这个指针获取解析后的JSON数据。
下面是一个示例代码,用于将一个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()
函数创建了一个空的JSON对象,并使用json_object_object_add()
函数向该对象中添加了两个键值对。然后通过json_object_to_json_string()
函数将JSON对象转换为JSON格式的字符串,并将其保存至文件中。