在C語言中,解析JSON為數組對象數組是一項很常見的任務。以下是一個簡單的示例,演示了如何使用C語言解析JSON:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { const char *json_string = "{ \"array\": [1, 2, \"three\"], \"object\": { \"key\": \"value\" } }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (root) { json_t *array = json_object_get(root, "array"); if (json_is_array(array)) { size_t array_size = json_array_size(array); for (size_t i = 0; i < array_size; i++) { json_t *ind = json_array_get(array, i); if (json_is_string(ind)) printf("%s\n", json_string_value(ind)); else if (json_is_integer(ind)) printf("%lld\n", json_integer_value(ind)); } } json_decref(root); } return 0; }
解析JSON的第一步是將JSON字符串加載到json_t中。進行此操作的函數是json_loads(),它接受JSON字符串作為第一個參數,flags參數應該傳遞為0。如果解析成功,將返回一個指向json_t對象的指針。在這個例子中,我們使用根級別JSON對象中的“array”鍵來訪問包含數字和字符串的數組。
使用json_object_get()函數可以獲得JSON對象中的鍵值對。此函數的第一個參數是要搜索的JSON對象,第二個參數是要獲取的鍵的名稱。如果鍵存在,則返回對應的值。
接下來,我們使用json_is_array()函數檢查所獲取的JSON值是否為有效的數組類型。如果是這樣,使用json_array_size()函數獲取數組中元素的數量,然后使用json_array_get()函數獲取每個數組元素。我們使用json_is_string()函數和json_is_integer()函數來分別確定元素是字符串還是整數。如果它是字符串,我們使用json_string_value()函數來檢索它。否則,我們使用json_integer_value()函數。
當完成所有操作后,我們使用json_decref()函數安全地從內存中釋放本地JSON對象。
上一篇c 解析json數組格式
下一篇vue ajax接收數據