C语言JSON解析器,能够解析JSON格式的字符串,支持对象,数组,字符串,数字等数据类型
时间: 2023-12-15 07:21:20 浏览: 77
好的,您可以使用 cJSON 这个 C 语言的开源库来解析 JSON 格式的字符串。cJSON 库可以解析 JSON 对象、数组、字符串、数字等数据类型,同时也支持生成 JSON 格式的字符串。
以下是一个使用 cJSON 库解析 JSON 字符串的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main(void)
{
const char *json_string = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
cJSON *json = cJSON_Parse(json_string);
if (json == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name");
if (cJSON_IsString(name) && (name->valuestring != NULL)) {
printf("Name: %s\n", name->valuestring);
}
cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age");
if (cJSON_IsNumber(age)) {
printf("Age: %d\n", age->valueint);
}
cJSON *city = cJSON_GetObjectItemCaseSensitive(json, "city");
if (cJSON_IsString(city) && (city->valuestring != NULL)) {
printf("City: %s\n", city->valuestring);
}
cJSON_Delete(json);
return 0;
}
```
这段代码会解析一个包含三个键值对的 JSON 对象,然后输出每个键对应的值。您可以根据自己的需要修改代码来解析更复杂的 JSON 数据。
阅读全文