在C語言中,要解析磁盤上的JSON文件,我們可以利用第三方庫cJSON來完成。
cJSON是一個輕量級的C語言JSON解析器,它提供了一組簡單易用的API,可以方便地解析JSON格式的字符串。
我們可以通過以下代碼來解析JSON文件:
#include <stdio.h> #include <cJSON.h> int main() { // 假設我們要解析的JSON文件名為test.json char* filename = "test.json"; FILE *fp; cJSON *json; fp = fopen(filename, "rb"); if(fp == NULL) { printf("Error: fopen failed.\n"); return 1; } fseek(fp, 0, SEEK_END); long size = ftell(fp); fseek(fp, 0, SEEK_SET); char* str = (char*)malloc(size + 1); fread(str, 1, size, fp); str[size] = '\0'; fclose(fp); // 解析JSON文件 json = cJSON_Parse(str); if(json == NULL) { printf("Error: cJSON_Parse failed.\n"); return 1; } printf("%s\n", cJSON_Print(json)); cJSON_Delete(json); free(str); return 0; }
在這段代碼中,我們首先使用fopen函數打開JSON文件,然后使用fseek和ftell函數獲取文件大小,再使用malloc函數動態分配字符串內存。
接著,我們使用fread函數將文件內容讀取到字符串中,并在末尾加上'\0',使其成為一個完整的字符串。
然后,我們調用cJSON_Parse函數解析JSON字符串,如果解析出錯,則打印錯誤信息并退出程序。
最后,我們調用cJSON_Print函數將JSON對象轉換成字符串,并打印出來,然后使用cJSON_Delete函數釋放內存。
通過以上代碼,我們可以輕松地解析JSON文件,并使用得到的JSON對象進行后續處理。