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

c 循環(huán)json字符串

林玟書1年前8瀏覽0評論

在C語言中,有時候我們需要循環(huán)遍歷JSON字符串,這時候我們就需要使用一些庫來幫我們處理JSON字符串。其中比較常用的是cJSON庫。

cJSON是一個輕量級的JSON解析庫,它能夠快速解析JSON字符串,并且使用簡單方便。下面我們就通過一個例子來演示如何使用cJSON來循環(huán)JSON字符串。

#include#include#include "cJSON.h"
int main(int argc, char** argv) {
// 假設(shè)我們有以下JSON字符串
char* json_str = "{"
"    \"name\": \"張三\","
"    \"age\": 20,"
"    \"hobbies\": [\"籃球\", \"游泳\", \"唱歌\"],"
"    \"address\": {"
"        \"province\": \"北京\","
"        \"city\": \"朝陽區(qū)\","
"        \"street\": \"建國路\""
"    }"
"}";
// 將JSON字符串解析為cJSON對象
cJSON* root = cJSON_Parse(json_str);
if (!root) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
// 遍歷JSON對象的key和value
cJSON* item = root->child;
while (item) {
printf("key: %s\n", item->string);
printf("value: ");
switch(item->type) {
case cJSON_Number:
printf("%d", item->valueint);
break;
case cJSON_String:
printf("%s", item->valuestring);
break;
case cJSON_Array:
// 遍歷數(shù)組中的每一個元素
cJSON* hobby = item->child;
while (hobby) {
printf("%s ", hobby->valuestring);
hobby = hobby->next;
}
break;
case cJSON_Object:
// 遞歸遍歷JSON對象
cJSON* address = item->child;
while (address) {
printf("%s: %s ", address->string, address->valuestring);
address = address->next;
}
break;
}
printf("\n");
item = item->next;
}
// 釋放cJSON對象
cJSON_Delete(root);
return 0;
}

在上述代碼中,我們首先將JSON字符串解析為cJSON對象。然后通過遍歷對象的key和value,輸出JSON對象的信息。當(dāng)遇到數(shù)組和嵌套對象時,我們需要使用遞歸的方式來遍歷元素。

通過上述例子,我們可以看出cJSON庫的使用非常簡潔高效,可以方便地解析和循環(huán)遍歷JSON字符串。