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標簽來展示代碼。
下一篇vue 頁面滾動不了