今天我們來探討一下C語言如何讀取JSON數據文件。JSON是一種輕量級的數據交換格式,具有可讀性高、易于理解、易于編寫和解析、靈活性好等特點,所以在現代網絡應用中極為常見。很多時候我們需要在C語言中讀取JSON數據文件并對數據進行處理,那么要如何實現呢?
#include#include #include #include int main() { FILE *fp; char buf[1024]; cJSON *json; fp = fopen("data.json", "r"); fread(buf, 1, 1024, fp); fclose(fp); json = cJSON_Parse(buf); if (!json) { printf("Error before: [%s]\n", cJSON_GetErrorPtr()); return 1; } cJSON *item = cJSON_GetObjectItem(json, "name"); printf("name: %s\n", item->valuestring); cJSON *array = cJSON_GetObjectItem(json, "tags"); int array_size = cJSON_GetArraySize(array); for (int i = 0; i< array_size; i++) { cJSON *tag = cJSON_GetArrayItem(array, i); printf("tag%d: %s\n", i, tag->valuestring); } cJSON_Delete(json); return 0; }
上面的代碼通過使用cJSON庫來解析JSON文件,并且打印了JSON文件中的name和tags數組。首先打開文件,使用fread來讀取文件內容,然后調用cJSON_Parse解析JSON字符串并返回一個json對象。如果解析失敗,則可以通過調用cJSON_GetErrorPtr()來獲取錯誤信息并打印。我們可以通過使用cJSON_GetObjectItem和cJSON_GetArrayItem來獲取JSON對象中的屬性值,需要注意的是這些函數返回的都是cJSON對象。
這里我們使用了cJSON對象的valuestring屬性來獲得屬性值并打印出來,當然還有其他的屬性類型可以參考cJSON的文檔。最后別忘了刪除json對象以免內存泄漏。
上一篇python 獲取主目錄
下一篇es是json格式嗎