色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 提取json數據中的list

李中冰1年前7瀏覽0評論

在 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 對象,我們需要使用對應的函數進行轉換。