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

c 讀取json里的值

錢多多2年前7瀏覽0評論

在C語言開發中,經常需要讀取JSON文件里面的數據,然后進行相關的處理。

下面介紹一個基于cJSON庫,讀取json文件里的值的方法。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cJSON.h"
int main()
{
const char *filename = "data.json";  // json文件名
char *json_content = NULL;
cJSON *root = NULL;
/* 讀取json文件內容 */
FILE *fp = fopen(filename, "r");  // 只讀方式打開文件
fseek(fp, 0, SEEK_END);
long len = ftell(fp);  // 文件長度
fseek(fp, 0, SEEK_SET);
json_content = (char *) malloc(len + 1);
fread(json_content, 1, len, fp);
fclose(fp);
/* 解析json字符串為cJSON對象 */
root = cJSON_Parse(json_content);
if (!root) {
fprintf(stderr, "Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
/* 讀取key對應的value */
cJSON *value = cJSON_GetObjectItem(root, "key");
if (value == NULL) {
printf("Can't get the value!\n");
return 1;
} else if (cJSON_IsString(value)) {
printf("The value is: %s\n", value->valuestring);
} else {
printf("The value is not string!\n");
}
/* 釋放內存 */
cJSON_Delete(root);
free(json_content);
return 0;
}

以上代碼,基于cJSON庫實現了讀取json文件里的key對應的value的功能。

首先需要讀取json文件內容,然后將其解析成cJSON對象,接著通過cJSON_GetObjectItem函數獲取key對應的value,最后判斷value是否為字符串類型,進行相應的處理。

完整執行結果如下:

The value is: value