C是一種強類型語言,它最初是在20世紀70年代由丹尼斯·里奇創造的。C具有高效性和可移植性,是編寫操作系統和各種應用程序的理想語言?,F在,C被廣泛應用于Web開發和網絡編程中。在這里,我們將重點介紹如何使用C語言接收JSON數組對象。
#include <stdio.h> #include <jansson.h> int main() { char *json_input = "[{\"name\":\"Tom\",\"age\":25,\"gender\":\"male\"}, \ {\"name\":\"Lucy\",\"age\":23,\"gender\":\"female\"}]"; json_error_t error; json_t *root = json_loads(json_input, 0, &error); if (!root) { printf("error: on line %d: %s\n", error.line, error.text); return 1; } if (!json_is_array(root)) { printf("error: root is not an array\n"); json_decref(root); return 1; } size_t index; json_t *value; json_array_foreach(root, index, value) { if (!json_is_object(value)) { printf("error: element %d is not an object\n", (int)index); json_decref(root); return 1; } json_t *name = json_object_get(value, "name"); json_t *age = json_object_get(value, "age"); json_t *gender = json_object_get(value, "gender"); printf("name: %s, age: %d, gender: %s\n", json_string_value(name), \ json_integer_value(age), \ json_string_value(gender)); } json_decref(root); return 0; }
該代碼使用libjansson庫,它提供了一個JSON解析器和生成器,方便我們在C語言中處理JSON數據。在主函數中,我們定義了一個JSON字符串作為輸入數據,然后使用json_loads函數將其加載到一個json_t類型的對象中。
接下來,我們檢查root對象是否為一個JSON數組對象。如果不是,則輸出錯誤消息并釋放該對象。如果是,則遍歷數組并分別處理每個JSON對象。在該示例中,我們假設每個JSON對象都包含名稱、年齡和性別這三個元素。我們使用json_object_get函數根據名稱獲取元素,并使用json_string_value和json_integer_value函數將元素轉換為C語言的字符串和整數。最后,我們使用printf函數將結果輸出到控制臺。
使用C語言接收JSON數組對象可能需要更多的代碼和繁瑣的類型轉換,但C語言的高效性和可移植性使其成為一種優秀的選擇。我們可以使用libjansson庫方便地處理JSON數據,而且該庫提供了諸如錯誤處理和類型檢查之類的便利功能。
上一篇vue中引入swiper
下一篇python 猜坐標游戲