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

c 遍歷json listmap

林國瑞2年前9瀏覽0評論

C語言作為一門高效的編程語言,常常被用來處理大量數據,包括json格式的數據。在處理json數據時,遍歷json listmap是一項基本的操作。本文將介紹如何使用C語言遍歷json listmap。

#include <stdio.h>
#include <jansson.h>
int main()
{
const char *json_string = "{\"key1\": \"value1\", \"key2\": [0, 1, 2], \"key3\": {\"inner_key\": \"inner_value\"}}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if (!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
return 1;
}
const char *key;
json_t *value;
void *iter = json_object_iter(root);
while (iter) {
key = json_object_iter_key(iter);
value = json_object_iter_value(iter);
printf("%s ->", key);
if (json_is_object(value)) {
printf("(object)\n");
} else if (json_is_array(value)) {
printf("(array)\n");
} else if (json_is_string(value)) {
printf("(string) %s\n", json_string_value(value));
} else if (json_is_number(value)) {
printf("(number) %f\n", json_number_value(value));
} else if (json_is_boolean(value)) {
printf("(boolean) %s\n", json_is_true(value) ? "true" : "false");
} else if (json_is_null(value)) {
printf("(null)\n");
} else {
printf("(unknown type)\n");
}
iter = json_object_iter_next(root, iter);
}
json_decref(root);
return 0;
}

上述代碼使用了json-c庫來處理json數據。在代碼中,我們先使用json_loads函數將json字符串解析為json_t類型的數據。然后通過json_object_iter來遍歷json數據中的每一個元素,使用json_object_iter_key和json_object_iter_value函數獲取key和value,對不同類型的value進行判斷并輸出。

此外,還要注意使用json_decref函數釋放json_t類型的數據,避免內存泄漏。