C++标准库读取和写入JSON文件功能
时间: 2023-10-24 16:04:48 浏览: 72
C标准库不直接支持读取和写入JSON文件的功能,但可以使用第三方库来实现。
以下是一些常用的C语言JSON库:
1. cJSON:一个轻量级的JSON解析和生成库。可以在GitHub上下载。
2. Jansson:一个C语言的JSON库,支持解析和生成JSON数据。可以在GitHub上下载。
3. YAJL:一个快速的JSON解析器/生成器库,支持流式处理JSON数据。可以在GitHub上下载。
使用这些库可以方便地读取和写入JSON文件。例如,使用cJSON库可以通过以下方式读取JSON文件:
```
#include <stdio.h>
#include <cJSON.h>
int main() {
FILE *file = fopen("data.json", "r");
if (file) {
fseek(file, 0, SEEK_END);
long size = ftell(file);
fseek(file, 0, SEEK_SET);
char *buffer = (char*)malloc(size + 1);
fread(buffer, 1, size, file);
fclose(file);
buffer[size] = '\0';
cJSON *json = cJSON_Parse(buffer);
free(buffer);
if (json) {
// 处理JSON数据
cJSON_Delete(json);
} else {
printf("Error: Failed to parse JSON file.");
}
} else {
printf("Error: Failed to open JSON file.");
}
return 0;
}
```
使用cJSON库可以通过以下方式将JSON数据写入文件:
```
#include <stdio.h>
#include <cJSON.h>
int main() {
cJSON *json = cJSON_CreateObject();
cJSON_AddStringToObject(json, "name", "John");
cJSON_AddNumberToObject(json, "age", 30);
char *jsonString = cJSON_Print(json);
cJSON_Delete(json);
FILE *file = fopen("output.json", "w");
if (file) {
fputs(jsonString, file);
fclose(file);
} else {
printf("Error: Failed to open output file.");
}
free(jsonString);
return 0;
}
```
这些代码示例可以帮助您开始使用JSON库读取和写入JSON文件。