欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c如何讀取json文件

錢淋西1年前9瀏覽0評論

JSON是一種輕量級的數據格式,常用于前后端數據交互。C語言也可以通過解析JSON文件,實現對數據的讀取。本文將介紹C語言如何讀取JSON文件。

首先需要下載JSON解析庫,可選擇開源的 cJSON 庫。下載后在C語言項目中添加相應的頭文件和源文件。

下面是讀取JSON文件的示例代碼:

#include "cJSON.h"
#include <stdio.h>
int main(){
//定義變量
FILE *fp;
long file_size;
char *json_data;
cJSON *root;
cJSON *array;
//打開JSON文件
fp = fopen("data.json", "rb");
if(fp == NULL) {
printf("Fail to open file!\n");
return -1;
}
//獲取文件大小
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
//讀取文件數據
json_data = (char*)malloc(file_size + 1);
fread(json_data, file_size, 1, fp);
json_data[file_size] = '\0';
//解析JSON數據
root = cJSON_Parse(json_data);
if(!root) {
printf("Error before: %s\n", cJSON_GetErrorPtr());
return -1;
}
//獲取JSON數組
array = cJSON_GetObjectItem(root, "data");
if(!array) {
printf("Error before: %s\n", cJSON_GetErrorPtr());
cJSON_Delete(root);
return -1;
}
//遍歷JSON數組
cJSON *item = NULL;
cJSON_ArrayForEach(item, array){
cJSON *name = cJSON_GetObjectItem(item, "name");
cJSON *age = cJSON_GetObjectItem(item, "age");
if(name && age) {
printf("%s: %d years old\n", name->valuestring, age->valueint);
}
}
//釋放內存
cJSON_Delete(root);
free(json_data);
fclose(fp);
return 0;
}

以上代碼實現了讀取JSON文件,并解析其中的數據。需要注意的是,cJSON庫提供了豐富的API接口,可根據具體需求進行調用。