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

c 循環(huán)取json中的值

在C語(yǔ)言中,我們可以使用第三方庫(kù)cJSON來(lái)解析JSON字符串,然后使用循環(huán)語(yǔ)句來(lái)取出其中的鍵值對(duì)。

#include <stdio.h>
#include <cJSON.h>
int main() {
char *jsonStr = "{\"name\": \"張三\", \"age\": 25, \"hobby\": [\"籃球\", \"足球\"]}";
cJSON *json = cJSON_Parse(jsonStr);
if (json == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *item = NULL;
cJSON_ArrayForEach(item, json) {
if (cJSON_IsString(item)) {
printf("%s: %s\n", item->string, item->valuestring);
} else if (cJSON_IsNumber(item)) {
printf("%s: %d\n", item->string, item->valueint);
} else if (cJSON_IsArray(item)) {
printf("%s:\n", item->string);
cJSON *hobby = NULL;
cJSON_ArrayForEach(hobby, item) {
printf("- %s\n", hobby->valuestring);
}
}
}
cJSON_Delete(json);
return 0;
}

在上面的代碼中,我們首先定義了一個(gè)JSON字符串,然后使用cJSON_Parse函數(shù)將其轉(zhuǎn)換為cJSON結(jié)構(gòu)體。接著使用cJSON_ArrayForEach宏遍歷JSON對(duì)象中的所有元素,針對(duì)每個(gè)元素,我們根據(jù)其類型進(jìn)行處理,并使用item->string來(lái)獲取鍵的名稱,item->valuestring或item->valueint來(lái)獲取對(duì)應(yīng)的值。

如果遇到數(shù)組類型的值,我們還需要使用cJSON_ArrayForEach宏來(lái)遍歷其中的所有元素,獲取每個(gè)元素的值。

最后,我們需要使用cJSON_Delete函數(shù)來(lái)釋放內(nèi)存,防止內(nèi)存泄漏。