cJSON解析json文件实例
时间: 2024-05-03 14:19:45 浏览: 156
基于cjson C++处理json数据解析的例子
下面是一个使用cJSON库解析JSON文件的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cJSON.h"
int main()
{
// 读取JSON文件
FILE *fp = fopen("example.json", "r");
if (!fp) {
printf("Failed to open file: example.json\n");
return 1;
}
// 获取文件长度
fseek(fp, 0, SEEK_END);
size_t length = ftell(fp);
fseek(fp, 0, SEEK_SET);
// 读取文件内容
char *buffer = (char*)malloc(length + 1);
memset(buffer, 0, length + 1);
fread(buffer, 1, length, fp);
// 解析JSON
cJSON *root = cJSON_Parse(buffer);
if (!root) {
printf("Failed to parse JSON: %s\n", cJSON_GetErrorPtr());
return 1;
}
// 获取根节点下的各个字段
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *address = cJSON_GetObjectItem(root, "address");
// 打印结果
printf("Name: %s\n", name->valuestring);
printf("Age: %d\n", age->valueint);
printf("Address: %s\n", address->valuestring);
// 释放内存
cJSON_Delete(root);
free(buffer);
fclose(fp);
return 0;
}
```
假设JSON文件example.json的内容如下:
```json
{
"name": "John",
"age": 30,
"address": "New York"
}
```
运行上面的代码将输出:
```
Name: John
Age: 30
Address: New York
```
阅读全文