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格式是否正確、文件路徑是否正確等細節,以保證程序正常運行。
上一篇vue 系統維護
下一篇vue 純函數 組件