JSON是現代的數據交換格式之一,它逐漸替代了傳統的XML。在C語言中,解析JSON需要使用相關的庫函數,同時也需要了解JSON的基本結構。下面示例展示了如何使用C語言解析其中一個常見的JSON結構,即JSON數組中包含對象數組。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { // JSON字符串 char *json_string = "[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Alice\",\"age\":25,\"city\":\"London\"}]"; // 解析JSON字符串 json_t *root; json_error_t error; root = json_loads(json_string, 0, &error); if (!root) { printf("error: on line %d: %s\n", error.line, error.text); return 1; } // 遍歷JSON數組 size_t i; json_t *value; json_array_foreach(root, i, value) { // 獲取對象屬性 const char *name, *city; int age; json_object_get_string(json_object_get(value, "name"), &name); json_object_get_integer(json_object_get(value, "age"), &age); json_object_get_string(json_object_get(value, "city"), &city); // 輸出對象屬性 printf("Name: %s\n", name); printf("Age: %d\n", age); printf("City: %s\n", city); printf("\n"); } // 釋放內存 json_decref(root); return 0; }
在上面的代碼示例中,我們首先定義了一個JSON字符串,它表示一個包含兩個對象的數組。接著,我們使用json_loads函數將JSON字符串解析為一個json_t類型的根節點。如果解析失敗,我們將會輸出錯誤信息并退出程序。
接下來,我們使用json_array_foreach函數遍歷JSON數組中的每個對象,并使用json_object_get_xxx函數獲取對象的屬性值。最后,我們輸出了每個對象的屬性值,并使用json_decref釋放了內存。
綜上所述,C語言解析JSON數組中包含對象數組的過程并不復雜,只需要掌握相關的庫函數和對JSON結構的基本了解即可。除此之外,我們還可以使用其他JSON結構進行實驗和學習,例如JSON對象、復雜的JSON數組等。
上一篇vue 組件上傳相片
下一篇c#中的json