欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 怎么解析json有多個對象

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

在C語言中,我們可以使用json-c這個庫來解析JSON數據。下面我們將說明如何解析包含多個JSON對象的數據。

#include <stdio.h>
#include <stdlib.h>
#include <json-c/json.h>
int main(int argc, char **argv)
{
char *json_str = "{\"person1\":{\"name\":\"Tom\",\"age\":20},\"person2\":{\"name\":\"Jerry\",\"age\":25}}";
struct json_object *json_obj = json_tokener_parse(json_str);
enum json_type type = json_object_get_type(json_obj);
if(type == json_type_object) {
int obj_length = json_object_object_length(json_obj);
for(int i = 0; i< obj_length; i++) {
const char* obj_name = json_object_name(json_object_object_get_idx(json_obj, i));
struct json_object *sub_obj = json_object_object_get(json_obj, obj_name);
printf("Object: %s\n", obj_name);
printf("Name: %s\n", json_object_get_string(json_object_object_get(sub_obj, "name")));
printf("Age: %d\n\n", json_object_get_int(json_object_object_get(sub_obj, "age")));
}
}
json_object_put(json_obj);
return 0;
}

首先,我們需要將JSON數據轉化為json_object類型的對象。在上面的代碼中,我們使用了json_tokener_parse()方法將JSON字符串解析成json_object對象。

然后,我們使用json_object_get_type()方法判斷該對象的類型是否為JSON對象,如果是,我們需要遍歷該對象中的每一個JSON子對象。

我們可以使用json_object_object_length()方法獲取JSON對象的長度,然后遍歷所有的子對象。使用json_object_object_get_idx()可以獲取對象中的子對象,并使用json_object_name()獲取子對象的名稱。獲取子對象中的值需要使用json_object_object_get()方法。在這個例子中,我們用json_object_get_string()方法獲取name屬性的值,用json_object_get_int()方法獲取age屬性的值。

最后,我們需要使用json_object_put()方法釋放json_object對象。