C 語言是一種比較底層的編程語言,但它卻可以操作各種文件類型。其中,讀取 JSON 文件也是可以通過 C 語言實現的。
首先,需要引入相應的頭文件:
#include <stdio.h> #include <jansson.h>
jansson 是 JSON 解析庫,需要先安裝,然后使用 gcc 編譯時需要加上 -ljansson 參數。
接著,可以通過以下代碼讀取 JSON 文件:
json_t *root; json_error_t error; root = json_load_file("/path/to/json/file.json", 0, &error); if(!root){ printf("Error: on line %d: %s\n", error.line, error.text); return 1; }
其中,json_load_file 函數會返回一個 json_t 類型的指針,代表 JSON 數據。
接下來,就可以通過 json_object_get 和 json_array_get 函數來獲取 JSON 數據中的鍵值對:
json_t *data = json_object_get(root, "data"); if(!json_is_array(data)){ fprintf(stderr, "error: data is not an array\n"); json_decref(root); return 1; } size_t size = json_array_size(data); for(size_t i=0; i<size; i++){ json_t *obj = json_array_get(data, i); ... }
如果 JSON 數據的根元素是對象,就要使用 json_object_get 函數。如果是數組,就要使用 json_array_get 函數。其中,size 變量代表了數據的長度,可以通過 json_array_size 函數獲取。
最后,要注意在使用完 json_t 指針之后,及時使用 json_decref 函數釋放內存。