色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c程序讀取json文件

老白2年前8瀏覽0評論

C語言作為一種面向過程的編程語言,其語法簡潔、效率高的特點被廣泛運用于嵌入式開發、網絡通訊以及科學計算等諸多領域。在開發過程中,讀取json格式的配置文件是一個必須面對的問題。為此,本文將介紹如何使用C程序讀取json文件。

#include#include#include#include "cJSON.h"
#define FILENAME "./config.json"
int main(void)
{
FILE* fp = fopen(FILENAME, "r");
if (fp == NULL) {
printf("Failed to open file: %s\n", FILENAME);
return 0;
}
fseek(fp, 0, SEEK_END);
int len = ftell(fp);
fseek(fp, 0, SEEK_SET);
char* buf = (char*)malloc(len + 1);
memset(buf, 0, len + 1);
fread(buf, sizeof(char), len, fp);
fclose(fp);
cJSON* root = cJSON_Parse(buf);
if (root == NULL) {     // json格式錯誤
printf("json parse error: %s\n", cJSON_GetErrorPtr());
return 0;
}
cJSON* obj = cJSON_GetObjectItem(root, "name");
if (obj != NULL) {
printf("name: %s\n", obj->valuestring);
}
obj = cJSON_GetObjectItem(root, "age");
if (obj != NULL) {
printf("age: %d\n", obj->valueint);
}
cJSON_Delete(root);
return 0;
}

代碼中引用了cJSON庫,該庫是一款輕量級的json解析庫,使用簡單、效率高。在程序中,首先使用fopen函數打開文件,然后使用fseek函數獲取文件大小,接著創建一個大小足夠存放整個文件的空間,使用fread函數讀取文件內容,最后調用cJSON_Parse函數將json字符串轉換為cJSON對象。

使用cJSON_GetObjectItem函數獲取json對象中的鍵值對,其中鍵為字符串類型,值可以是字符串、數字等,根據值的類型使用對應的接口函數讀取即可。最后通過cJSON_Delete函數釋放內存,程序運行完畢。

通過上述代碼及解析過程,讀取json文件的處理已經十分簡單。實際使用中,需要注意json格式是否正確、文件路徑是否正確等細節,以保證程序正常運行。