C語言是一種被廣泛使用的編程語言,它支持很多數據格式的讀取與處理。其中,JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,具有良好的可讀性與可擴展性。下面介紹在C語言中如何讀取JSON格式的數據。
首先,需要使用第三方庫——cJSON。它是一款輕量級的JSON解析庫,可以快速在C語言中解析JSON格式的數據。下面是一個讀取JSON文件并輸出解析結果的示例代碼:
#include <stdio.h> #include <cJSON.h> int main() { // 讀取JSON文件 FILE* fp = fopen("data.json", "rb"); if(fp == NULL) { printf("json file not found\n"); return -1; } // 獲取文件長度并分配內存 fseek(fp, 0, SEEK_END); long len = ftell(fp); fseek(fp, 0, SEEK_SET); char* json_str = (char*)malloc(len + 1); fread(json_str, 1, len, fp); fclose(fp); // 解析JSON數據 cJSON* root = cJSON_Parse(json_str); if(root == NULL) { printf("json parse error\n"); return -1; } // 輸出解析結果 cJSON* data = cJSON_GetObjectItem(root, "data"); printf("name: %s\n", cJSON_GetObjectItem(data, "name")->valuestring); printf("age: %d\n", cJSON_GetObjectItem(data, "age")->valueint); cJSON_Delete(root); free(json_str); return 0; }
上述代碼中,首先通過fopen函數讀取JSON文件,并獲取文件長度,然后根據文件長度動態分配內存,將JSON文件中的數據讀入內存。接著,使用cJSON庫的cJSON_Parse函數解析JSON數據,獲取解析后的JSON對象指針root。
在解析后的JSON對象中,可以使用cJSON_GetObjectItem函數獲取指定的JSON鍵值對。例如,通過cJSON_GetObjectItem函數獲取"data"鍵值對的值data,再使用cJSON_GetObjectItem函數獲取"name"和"age"鍵值對的值,并輸出解析結果。
最后,需要使用cJSON_Delete函數釋放解析對象的內存,并使用free函數釋放讀取JSON文件時動態分配的內存。
上一篇mysql關聯中間表
下一篇vue 1024