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函数释放已分配的内存。