淘先锋技术网

首页 1 2 3 4 5 6 7

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于前后端数据的传输。它由键值对构成,并且数据格式简洁、易于阅读和编写。

在C语言中,我们可以使用第三方库来解析JSON数据。以下是使用C语言解析JSON的示例代码:

#include <stdio.h>
#include <jansson.h>
int main() {
char *json_str = "{\"name\":\"Jill\", \"age\":26, \"address\":{\"city\":\"Beijing\",\"country\":\"China\"}}";
json_t *json_root;
json_error_t json_err;
json_root = json_loads(json_str, 0, &json_err);
if (!json_root) {
printf("JSON解析错误,错误信息:%s\n", json_err.text);
return 1;
}
json_t *name = json_object_get(json_root, "name");
json_t *age = json_object_get(json_root, "age");
json_t *address = json_object_get(json_root, "address");
printf("姓名:%s\n", json_string_value(name));
printf("年龄:%d\n", json_integer_value(age));
printf("所在城市:%s\n", json_string_value(json_object_get(address, "city")));
printf("所在国家:%s\n", json_string_value(json_object_get(address, "country")));
json_decref(json_root);
return 0;
}

在这个示例代码中,我们首先创建了一个JSON字符串,并将其作为参数传递给json_loads函数,该函数将字符串转换为json_t类型的对象。

然后,我们使用json_object_get函数从JSON对象中获取所需的键值。请注意,我们可以通过链式调用获取嵌套的JSON对象(如获取地址信息)。

最后,我们使用json_decref函数释放已分配的内存。