在 C 語言中,我們可以使用 JSON-C 庫來解析 JSON 數據。JSON 數據中可能包含不同類型的數據,例如字符串、數字、布爾值、對象和數組。在解析 JSON 數據時,最常用的操作之一是提取 JSON 數組(也稱為 List)。在本文中,我們將學習如何使用 JSON-C 庫在 C 語言中提取 JSON 數據中的數組。
// 假設我們有以下 JSON 數據 { "name": "John", "age": 30, "cars": ["Ford", "BMW", "Fiat"] } // 我們可以使用以下代碼來解析這個 JSON 數據并提取 cars 數組 struct json_object *json_obj, *json_array; json_obj = json_tokener_parse(json_str); // json_str 是包含 JSON 數據的字符串 json_object_object_get_ex(json_obj, "cars", &json_array); if (json_array != NULL && json_object_is_type(json_array, json_type_array)) { int array_len = json_object_array_length(json_array); for (int i = 0; i< array_len; i++) { struct json_object *car = json_object_array_get_idx(json_array, i); const char *car_str = json_object_get_string(car); printf("Car %d: %s\n", i, car_str); } } // 輸出結果: // Car 0: Ford // Car 1: BMW // Car 2: Fiat
在上面的代碼中,我們首先使用json_tokener_parse()
函數將 JSON 數據解析為一個 JSON 對象。然后,我們使用json_object_object_get_ex()
函數獲取 JSON 對象中名為 "cars" 的鍵對應的值,即一個 JSON 數組。如果該值存在且是一個 JSON 數組,我們使用json_object_array_length()
函數獲取數組的大小,并使用json_object_array_get_idx()
函數逐個提取數組中的元素。
我們還需要注意,在提取 JSON 數組元素時,我們可以使用json_object_get_string()
函數來獲取字符串元素,但對于其他類型的元素,例如數字、布爾值和 JSON 對象,我們需要使用對應的函數進行轉換。
上一篇vue中保持高亮
下一篇c 操作讀寫json文件