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

c json解析 對象包含對象

黃文隆2年前9瀏覽0評論

C JSON解析庫可以幫助我們在C程序中方便地解析JSON格式的數據。當JSON數據中包含對象時,C JSON解析庫同樣可輕松處理。我們只需將JSON數據映射到C語言中的結構體,即可方便地使用其中的數據。

// JSON數據
{
"person": {
"name": "Jack",
"age": 30,
"hobby": {
"first": "reading",
"second": "swimming"
}
}
}
// C語言結構體
typedef struct {
char name[10];
int age;
struct {
char first[20];
char second[20];
} hobby;
} Person;

如上所示,JSON數據中包含person對象,而person對象又包含name、age和hobby對象。在C語言中,我們定義了一個Person結構體來映射person對象,其中hobby對象也是一個結構體,包含first和second兩個元素。我們只需使用C JSON解析庫中的相應函數,即可將JSON數據解析到Person結構體中:

// 創建JSON對象
json_t* root = json_loads(json_str, 0, NULL);
// 解析person對象
json_t* person_obj = json_object_get(root, "person");
// 解析name元素
json_t* name_obj = json_object_get(person_obj, "name");
const char* name_str = json_string_value(name_obj);
// 解析age元素
json_t* age_obj = json_object_get(person_obj, "age");
int age_int = json_integer_value(age_obj);
// 解析hobby對象
json_t* hobby_obj = json_object_get(person_obj, "hobby");
// 解析first元素
json_t* first_obj = json_object_get(hobby_obj, "first");
const char* first_str = json_string_value(first_obj);
// 解析second元素
json_t* second_obj = json_object_get(hobby_obj, "second");
const char* second_str = json_string_value(second_obj);
// 將解析結果賦值到Person結構體
Person person;
strcpy(person.name, name_str);
person.age = age_int;
strcpy(person.hobby.first, first_str);
strcpy(person.hobby.second, second_str);

如代碼所示,我們先通過json_loads函數創建一個JSON對象root,然后使用json_object_get函數解析出person對象、name元素、age元素和hobby對象。接著,我們使用json_string_value和json_integer_value函數將元素的值轉換為相應的C語言類型,并將這些值賦給Person結構體。

總而言之,當JSON數據中包含對象時,我們只需將JSON數據映射到C語言中的結構體,然后使用C JSON解析庫中相應的函數,即可方便地解析其中的數據。