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

c json節點遍歷

傅智翔1年前9瀏覽0評論

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對象的所有節點,獲取了它們的值,并執行了相應的操作。