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

c 中json對象轉(zhuǎn)數(shù)組對象

阮建安2年前8瀏覽0評論

C語言中操作JSON格式數(shù)據(jù)要用到第三方庫,比如 cJSON。該庫功能強大,支持將JSON格式數(shù)據(jù)轉(zhuǎn)化成相應的C結(jié)構(gòu)體,也能將C結(jié)構(gòu)體轉(zhuǎn)換成JSON格式數(shù)據(jù),同時支持修改、刪除、插入等操作。本文重點介紹cJSON中如何將JSON對象轉(zhuǎn)換成數(shù)組對象。

// 讀取JSON格式數(shù)據(jù)
cJSON *json = cJSON_Parse("{\"name\":\"Tom\",\"age\":20,\"hobby\":[\"music\",\"movie\",\"book\"]}");
// 判斷JSON數(shù)據(jù)是否是對象類型
if (json->type == cJSON_Object) {
// 獲取JSON對象中的hobby數(shù)組
cJSON *hobby = cJSON_GetObjectItem(json, "hobby");
// 判斷獲取的hobby數(shù)組是否不為空且是數(shù)組類型
if (hobby != NULL && hobby->type == cJSON_Array) {
// 獲取hobby數(shù)組中的元素數(shù)量
int hobby_count = cJSON_GetArraySize(hobby);
// 遍歷hobby數(shù)組中的所有元素
for (int i = 0; i< hobby_count; i++) {
// 獲取hobby數(shù)組中的第i個元素
cJSON *hobby_item = cJSON_GetArrayItem(hobby, i);
// 輸出hobby數(shù)組中的第i個元素
if (hobby_item != NULL && hobby_item->type == cJSON_String) {
printf("%s\n", hobby_item->valuestring);
}
}
}
}
// 釋放JSON格式數(shù)據(jù)
cJSON_Delete(json);

以上代碼通過cJSON庫將JSON格式數(shù)據(jù)轉(zhuǎn)換成cJSON結(jié)構(gòu)體,并獲取其中的hobby數(shù)組,判斷hobby是否不為空且是數(shù)組類型。如果滿足條件,則遍歷hobby數(shù)組中的所有元素,并輸出每個元素的值。最后釋放cJSON結(jié)構(gòu)體以防止內(nèi)存泄漏。