C語言在處理JSON數據方面非常靈活和強大。為了實現遍歷json數據,我們需要使用一些JSON庫。
一個常用的JSON庫是 cJSON,它可以對JSON數據進行解析和生成。下面是一個使用cJSON庫遍歷JSON數據的例子:
#include <stdio.h>
#include <cJSON.h>
int main() {
// JSON字符串
const char *json_str = "{\"name\":\"Alice\", \"age\": 25, \"gender\":\"female\"}";
// 解析JSON
cJSON *json = cJSON_Parse(json_str);
// 遍歷JSON
cJSON *item = NULL;
cJSON_ArrayForEach(item, json) {
printf("%s: ", item->string);
switch (item->type) {
case cJSON_String:
printf("%s\n", item->valuestring);
break;
case cJSON_Number:
printf("%d\n", item->valueint);
break;
default:
printf("unknown type\n");
break;
}
}
// 釋放JSON對象
cJSON_Delete(json);
return 0;
}
在上面的例子中,我們使用 cJSON_Parse 函數解析 JSON 字符串,并使用 cJSON_ArrayForEach 宏遍歷 JSON 對象的每一個元素。在循環遍歷時,我們首先打印元素的名稱,然后根據元素的類型,打印相應的值。
需要注意的是,在使用完 cJSON 解析 JSON 數據后,需要使用 cJSON_Delete 函數釋放 cJSON 對象占用的內存。