c++ json读取
时间: 2023-11-16 22:15:45 浏览: 34
你好!要读取 JSON 文件,你可以使用 C 语言中的 JSON 解析库。常用的 JSON 解析库有 cJSON、Jansson 和 json-c。这些库都提供了简单易用的 API 来解析和访问 JSON 数据。以下是一个使用 cJSON 库读取 JSON 文件的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main() {
// 读取 JSON 文件
FILE *fp = fopen("data.json", "rb");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
// 获取文件大小
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fseek(fp, 0, SEEK_SET);
// 读取文件内容
char *jsonStr = (char*) malloc(size + 1);
fread(jsonStr, size, 1, fp);
jsonStr[size] = '\0';
fclose(fp);
// 解析 JSON 数据
cJSON *root = cJSON_Parse(jsonStr);
if (root == NULL) {
printf("解析 JSON 失败!\n");
free(jsonStr);
return 1;
}
// 访问 JSON 数据
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("姓名: %s\n", name->valuestring);
printf("年龄: %d\n", age->valueint);
// 释放内存
cJSON_Delete(root);
free(jsonStr);
return 0;
}
```
上述代码假设有一个名为 `data.json` 的 JSON 文件,其中包含 `name` 和 `age` 字段。代码通过 cJSON 解析库读取并访问这些字段,并打印在控制台上。
你可以根据实际情况选择其他的 JSON 解析库,但基本原理都相似。希望能对你有所帮助!如果你有更多问题,请随时提问。