C語言具有強大的文件讀寫能力,可以方便地讀取JSON文件中的內容。下面我們將介紹如何使用C語言讀取JSON文件,并獲取其中的數據內容。
首先,我們需要使用cJSON這個開源庫來讀取JSON文件。cJSON是一個輕量級的JSON解析器,可以方便地解析JSON格式的文本。通過cJSON,我們可以將JSON數據文件轉化為C語言中的結構體,實現將JSON數據在程序中的使用。接下來,我們就來看一下具體的實現方法。
#include <stdio.h> #include <cjson/cJSON.h> int main(int argc, char **argv) { FILE *fp; char buffer[1024]; cJSON *json, *item; if ((fp = fopen("test.json", "rb")) == NULL) { printf("ERROR: File open failed."); return -1; } fread(buffer, sizeof(buffer), 1, fp); json = cJSON_Parse(buffer); if (!json) { printf("ERROR: cJSON_Parse() failed."); return -1; } item = cJSON_GetObjectItem(json, "name"); printf("Name: %s\n", item->valuestring); item = cJSON_GetObjectItem(json, "age"); printf("Age: %d\n", item->valueint); cJSON_Delete(json); fclose(fp); return 0; }
在上面的代碼中,我們首先使用fopen()函數打開JSON數據文件。然后通過使用fread()函數將文件中的數據讀取到buffer數組中。接下來,我們使用cJSON_Parse()函數解析buffer數組中的JSON數據,并將數據轉化為cJSON結構體。
接下來,我們通過使用cJSON_GetObjectItem()函數將需要獲取的數據項從cJSON結構體中獲取出來,進行使用。例如,我們從JSON文件中獲取了“name”和“age”兩項數據,并將它們的值展示在了程序中。
最后,我們使用cJSON_Delete()函數刪除cJSON結構體,釋放內存,并使用fclose()函數關閉打開的JSON文件。