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

c 迭代遍歷帶數組的json格式數據

洪振霞1年前7瀏覽0評論

JSON (JavaScript Object Notation)是一種文本格式,用于表示數據結構。JSON數據通常像一個樹形結構,使用花括號表示。在C語言中,通過指針操作,可以輕松遍歷 JSON數據結構。下面,我們將為您介紹如何使用C語言遍歷帶數組的JSON格式數據。

#include#include#include#include "cjson/cJSON.h"
void traverse_array(cJSON *root) {
int i, size = cJSON_GetArraySize(root);
cJSON *item;
for (i = 0; i< size; i++) {
item = cJSON_GetArrayItem(root, i);
if (item->type == cJSON_Object) {
traverse_object(item);
} else if (item->type == cJSON_Array) {
traverse_array(item);
} else {
printf("value: %s\n", item->valuestring);
}
}
}
void traverse_object(cJSON *root) {
cJSON *item = root->child;
while(item) {
if (item->type == cJSON_Object) {
traverse_object(item);
} else if (item->type == cJSON_Array) {
traverse_array(item);
} else {
printf("key: %s value: %s\n", item->string, item->valuestring);
}
item = item->next;
}
}
int main() {
const char *json_str = "{ \"name\": \"chris\", \"age\": 24, \"hobbies\": [\"running\", \"reading\"], \"address\": {\"city\": \"beijing\", \"street\": \"haidian\"} }";
cJSON *root = cJSON_Parse(json_str);
traverse_object(root);
cJSON_Delete(root);
return 0;
}

首先,我們使用cJSON_Parse函數解析JSON字符串,獲得一個cJSON對象,該對象表示整個JSON樹。然后,我們遞歸遍歷cJSON對象,處理JSON數據。對于數組,我們使用cJSON_GetArrayItem函數獲取數組中的元素,并根據元素的類型分別進行相應的處理。對于對象,我們使用 cJSON_Object指針來迭代處理對象的每個成員。

在以上代碼示例中,我們使用pre標簽來展示代碼。