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

c 解析json字符串數組

劉柏宏1年前9瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。

因為其簡潔明了的結構,被廣泛用于互聯網上的數據傳輸和存儲。

在C語言中,我們可以使用第三方庫來解析JSON字符串數組。

#include <stdio.h>
#include <jansson.h>
int main() {
char *json_string = "[{\"name\":\"Peter\", \"age\":25}, {\"name\":\"Jack\", \"age\":30}]";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if(!root) {
printf("json error on line %d: %s\n", error.line, error.text);
return 1;
}
int i;
for(i = 0; i < json_array_size(root); i ++) {
json_t *data, *name, *age;
const char *name_str;
int age_int;
data = json_array_get(root, i);
name = json_object_get(data, "name");
age = json_object_get(data, "age");
name_str = json_string_value(name);
age_int = json_integer_value(age);
printf("name: %s, age: %d\n", name_str, age_int);
}
json_decref(root);
return 0;
}

在上述代碼中,我們使用了jansson庫來解析JSON字符串數組。首先,我們聲明了一個JSON字符串,該字符串是由兩個對象組成的數組。

然后,我們使用json_loads函數將JSON字符串加載到內存中,并按照格式要求進行解析。如果出現錯誤,該函數將返回NULL并將錯誤信息存儲在錯誤對象中。

接下來,我們遍歷JSON數組中的所有對象,并使用json_object_get函數獲取每個對象中的屬性。由于JSON中的數據類型是不確定的,因此我們將屬性值轉換為字符串或整數。

最后,我們使用json_decref函數釋放內存。

需要注意的是,該代碼僅適用于解析JSON字符串數組中的簡單對象。如果JSON字符串數組中的對象結構更加復雜,需要進行更多的判斷和處理。