C json節點的遍歷指的是在json數據中逐層查找節點的過程。在C語言中,我們可以使用標準庫中的JSON-C庫來處理JSON數據。下面是一段示例代碼:
#include <stdio.h> #include <json-c/json.h> int main(void) { const char *json_string = "{\"name\":\"Tom\", \"age\": 18, \"score\": [90, 80, 70]}"; struct json_object *root = json_tokener_parse(json_string); json_object_object_foreach(root, key, val) { printf("%s: ", key); json_type type = json_object_get_type(val); switch (type) { case json_type_int: printf("%d", json_object_get_int(val)); break; case json_type_string: printf("%s", json_object_get_string(val)); break; case json_type_array: { printf("["); int len = json_object_array_length(val); for (int i = 0; i < len; i++) { struct json_object *t = json_object_array_get_idx(val, i); printf("%d", json_object_get_int(t)); if (i < len - 1) printf(", "); } printf("]"); } break; default: printf("Unknown!"); break; } printf("\n"); } json_object_put(root); return 0; }
在上述代碼中,我們使用json_tokener_parse函數把JSON字符串轉換為JSON對象。然后,我們使用json_object_object_foreach函數遍歷JSON對象的所有成員。對于每個成員,我們使用json_object_get_type函數得到其類型,然后進行不同的處理,以打印出其對應的值。
上面的代碼輸出如下結果:
name: Tom age: 18 score: [90, 80, 70]
由此可見,我們成功地遍歷了JSON對象的所有節點,獲取了它們的值,并執行了相應的操作。
上一篇vue子組件必填
下一篇vue cli 調試