淘先锋技术网

首页 1 2 3 4 5 6 7

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格式的字符串,并将其保存至文件中。