在C語言中,讀取JSON數據是一項非常常見的任務。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,以易于閱讀和編寫的方式進行序列化和反序列化。下面我們來介紹如何在C語言中讀取JSON數據。
/*首先,我們需要引入以下頭文件*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(void) { /*1. 讀取JSON文件*/ /*打開JSON文件*/ FILE *fp = fopen("test.json", "r"); if (!fp) { printf("無法打開文件"); return 1; } /*讀取JSON數據*/ char buffer[1024]; fread(buffer, 1, 1024, fp); fclose(fp); /*2. 解析JSON數據*/ json_error_t error; json_t *root = json_loads(buffer, 0, &error); if (!root) { printf("解析JSON數據失敗"); return 1; } /*3. 獲取JSON數據*/ /*獲取根節點數據*/ json_t *name = json_object_get(root, "name"); printf("名稱:%s\n", json_string_value(name)); json_t *age = json_object_get(root, "age"); printf("年齡:%d\n", json_integer_value(age)); json_t *hobby = json_object_get(root, "hobby"); printf("愛好:\n"); int i; for (i = 0; i < json_array_size(hobby); i++) { printf(" %s\n", json_string_value(json_array_get(hobby, i))); } /*4. 釋放JSON數據*/ json_decref(root); return 0; }
上面的代碼中,我們使用了jansson庫,它是一個開源的C語言JSON庫,可以輕松地解析和構建JSON數據。首先,我們打開JSON文件并讀取其中的數據;然后,我們使用json_loads()函數將JSON數據解析成一個json_t對象;接著,我們通過json_object_get()和json_array_get()函數獲取JSON數據中的內容;最后,我們使用json_decref()函數釋放json_t對象。