当先锋百科网

首页 1 2 3 4 5 6 7

JSON是一种轻量级的数据交换格式,它可以在不同的编程语言之间传递数据。C语言也可以使用JSON数据,通过Json-C这个库。

{
"name": "张三",
"age": 25,
"education": [
{
"school": "清华大学",
"major": "计算机科学与技术"
},
{
"school": "北京大学",
"major": "管理学"
}
]
}

在使用Json-C库时,可以首先把JSON数据的内容读入一个json_object对象中:

json_object *jobj;
jobj = json_tokener_parse(json_data);

然后可以通过object_object_get函数获取JSON数据中的某个键值对,或者使用json_object_object_foreach函数遍历整个JSON数据:

json_object *name;
name = json_object_object_get(jobj, "name");
printf("Name: %s\n", json_object_get_string(name));
json_object *education;
json_object_object_get_ex(jobj, "education", &education);
int arraylen = json_object_array_length(education);
for (int i = 0; i< arraylen; i++) {
json_object *edu_item = json_object_array_get_idx(education, i);
json_object *school;
json_object_object_get_ex(edu_item, "school", &school);
printf("Education %d - School: %s\n", i+1, json_object_get_string(school));
json_object *major;
json_object_object_get_ex(edu_item, "major", &major);
printf("Education %d - Major: %s\n", i+1, json_object_get_string(major));
}

最后使用json_object_put函数释放掉json_object对象:

json_object_put(jobj);

Json-C库提供了一种简单实用的方式,使得C语言可以方便地处理JSON数据,这在需要跨语言进行数据交换的时候,非常有用。