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

c 無key值的json數組解析

劉姿婷2年前10瀏覽0評論

在c語言中,我們能夠很方便地解析json字符串,但是如果json字符串中有一個沒有鍵值的數組,該怎么解析呢?

一個例子如下:

{
"name": "小明",
"age": 20,
"hobby": [
"跑步",
"游泳",
"打羽毛球",
"",
"打乒乓球"
]
}

在以上的例子中,hobby數組中存在一個空字符串,這個空字符串是沒有對應的鍵值的,解析起來我們需要特殊處理。

我們可以使用cJSON庫來解析這個json字符串,并且可以使用以下代碼來獲取hobby數組:

cJSON *cjson = cJSON_Parse(jsonStr);  //jsonStr為需要解析的json字符串
cJSON *hobbyArr = cJSON_GetObjectItem(cjson, "hobby"); //獲取hobby數組
cJSON *hobbyItem = hobbyArr->child; //獲取第一個hobby元素
while (hobbyItem != NULL) {
if (hobbyItem->type == cJSON_String) { //如果hobby元素是字符串類型
if (strlen(hobbyItem->valuestring) >0) { //如果字符串非空
printf("%s\n", hobbyItem->valuestring); //輸出hobby元素的值
}
}
hobbyItem = hobbyItem->next; //獲取下一個hobby元素
}

在以上的代碼中,我們首先是使用cJSON_Parse函數將json字符串解析成一個cJSON對象,然后使用cJSON_GetObjectItem函數獲取hobby數組,再使用hobbyArr->child獲取第一個hobby元素,通過while循環遍歷所有的元素。

在遍歷時,我們需要判斷hobby元素是否為字符串類型,如果是,再判斷其是否為非空字符串,如果是,就輸出其值。需要注意,如果hobby元素不是字符串類型,例如是數字類型、布爾類型等,則忽略,只處理字符串類型。

使用以上的代碼就可以很方便地解析無key值的json數組了。