欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 將json轉換成樹

林雅南1年前9瀏覽0評論

C是一門廣泛使用的編程語言,在處理JSON數據方面有著強大的能力。在本篇文章中,我們將探討如何使用C將JSON轉換成樹結構。

#include <stdio.h>
#include <string.h>
#include <jansson.h>
void build_tree(json_t *json_object){
int key_count = json_object_size(json_object);
const char *key;
json_t *value;
json_object_foreach(json_object, key, value) {
printf("%s\n", key);
if (json_is_object(value)) {
build_tree(value);
} else if (json_is_array(value)) {
size_t arr_size = json_array_size(value);
for (int i = 0; i < arr_size; i++) {
build_tree(json_array_get(value, i));
}
} else {
printf("%s : ", key);
if (json_is_string(value)) {
printf("%s\n", json_string_value(value));
} else if (json_is_integer(value)) {
printf("%ld\n", json_integer_value(value));
} else if (json_is_boolean(value)) {
printf("%d\n", json_boolean_value(value));
} else if (json_is_null(value)) {
printf("null\n");
}
}
}
}
int main() {
const char *json_string = "{ \"name\":\"John\", \"age\":30, \"car\":null, \"pets\":[\"dog\", \"cat\", \"bird\"], \"contacts\": { \"email\":\"john@example.com\", \"phone\":\"1234567890\" } }";
json_error_t error;
json_t *json_object = json_loads(json_string, 0, &error);
build_tree(json_object);
json_decref(json_object);
return 0;
}

在上述代碼中,我們首先使用jansson庫來解析JSON字符串。然后,我們使用遞歸函數來遍歷每個鍵值對并打印它們。如果值是對象或數組,我們將遞歸下去,并繼續遍歷其它鍵值對。如果值是字符串、布爾值、整數或null,我們將它們打印出來。

這樣,我們就可以將一個JSON字符串轉換成一個樹結構,方便地對JSON數據進行處理和分析。