c语言解析json字符串
时间: 2023-08-23 08:04:36 浏览: 255
C语言本身并没有内置解析JSON字符串的函数,需要借助第三方库来实现。以下是使用cJSON库解析JSON字符串的示例代码:
```c
#include <stdio.h>
#include "cJSON.h"
int main() {
char *json_str = "{\"name\": \"John\", \"age\": 30, \"is_student\": true}";
// 解析JSON字符串
cJSON *json = cJSON_Parse(json_str);
if (json == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
// 获取JSON中的值
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name");
cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age");
cJSON *is_student = cJSON_GetObjectItemCaseSensitive(json, "is_student");
// 打印结果
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("Is student: %d\n", cJSON_IsTrue(is_student));
// 释放内存
cJSON_Delete(json);
return 0;
}
```
输出结果:
```
Name: John
Age: 30
Is student: 1
```
这里使用了cJSON库,它是一个轻量级的JSON解析器,可以方便地解析JSON字符串并提取其中的值。使用方法大概分为以下几步:
1. 调用cJSON_Parse函数解析JSON字符串,得到一个cJSON对象。
2. 使用cJSON_GetObjectItemCaseSensitive函数获取JSON中的值,需要指定键名和对象类型。
3. 根据对象类型获取对应的值。
4. 使用cJSON_Delete函数释放cJSON对象占用的内存。
阅读全文