在 C 语言中,解析 JSON 字符串是一项常见的任务,它涉及到把 JSON 字符串转换成内存中的一个结构体或数组等数据类型,以便程序能够处理 JSON 数据。
为了解析 JSON 字符串,我们需要采用一个支持 JSON 的第三方库。目前比较流行的有 cJSON、jansson 和 json-c 等。这里我们以 cJSON 为例进行说明:
#include <stdio.h>
#include <cJSON.h>
int main()
{
char *json_string = "{\"name\":\"John Smith\",\"age\":28,\"city\":\"New York\"}";
cJSON *root = cJSON_Parse(json_string);
cJSON *name = cJSON_GetobjectItem(root,"name");
cJSON *age = cJSON_GetobjectItem(root,"age");
cJSON *city = cJSON_GetobjectItem(root,"city");
printf("Name: %s\n",cJSON_GetStringValue(name));
printf("Age: %d\n",age->valueint);
printf("City: %s\n",cJSON_GetStringValue(city));
cJSON_Delete(root);
return 0;
}
首先,我们需要在代码中引入 cJSON 库的头文件。在这个示例中,我们创建了一个包含 JSON 字符串的指针 json_string
,它包含一个人的姓名、年龄和所在城市。然后,我们调用 cJSON_Parse
函数把 JSON 字符串转换成 cJSON 对象。
接着,我们通过调用 cJSON_GetobjectItem
函数,按照键名(这里是字符串类型)获取 JSON 对象中的值,并将其保存在 name、age 和 city 变量中。注意,我们使用了不同的函数来获取字符串类型和整数类型的值。
最后,我们调用 cJSON_Delete
函数释放内存,然后程序结束。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。