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

c json如何動態(tài)解析json數(shù)據(jù)

傅智翔2年前9瀏覽0評論

C JSON是一種輕量級數(shù)據(jù)交換格式,被廣泛應(yīng)用于各種網(wǎng)絡(luò)通信場景中,因此解析JSON數(shù)據(jù)顯得尤為重要。在實際應(yīng)用中,有時需要動態(tài)解析JSON數(shù)據(jù),此時可以借助C JSON提供的API來實現(xiàn)。

// 示例JSON數(shù)據(jù)
{
"name": "張三",
"age": 18,
"hobby": ["游泳", "跑步"]
}
// 動態(tài)解析JSON數(shù)據(jù)
cJSON *root = cJSON_Parse(json_str); // 解析JSON字符串
if (root == NULL) {
printf("parse json error!\n");
return;
}
// 獲取JSON中的字段值
cJSON *name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
cJSON *hobby = cJSON_GetObjectItem(root, "hobby");
int hobby_size = cJSON_GetArraySize(hobby);
for (int i = 0; i< hobby_size; i++) {
cJSON *item = cJSON_GetArrayItem(hobby, i);
printf("hobby_%d: %s\n", i, item->valuestring);
}
cJSON_Delete(root); // 釋放內(nèi)存

通過cJSON_Parse函數(shù)解析JSON字符串得到一個JSON對象,再通過cJSON_GetObjectItem函數(shù)獲取其中的字段值。需要注意的是,如果解析失敗或者獲取的字段不存在,相關(guān)函數(shù)會返回NULL。

在獲取數(shù)組類型的字段值時,可以使用cJSON_GetArraySize函數(shù)獲取其長度,并通過cJSON_GetArrayItem函數(shù)遍歷其中的每個元素。

需要注意的是,使用完JSON對象后需要調(diào)用cJSON_Delete函數(shù)釋放其占用的內(nèi)存。