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

c map json字符串數組中

林玟書2年前10瀏覽0評論

C語言中常用的數據結構之一是哈希表,在哈希表中,使用c map可以很方便的進行操作。c map是一個動態的哈希表,能夠自動調整哈希值,保證查詢的速度。

Json字符串數組是一種常見的數據格式,c map可以很方便的對其進行操作。在使用c map操作json字符串數組時,可以使用下面的代碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
#include <hashmap.h>
/* json array */
char* json_string = "[{\"name\":\"John\",\"age\":25,\"city\":\"New York\"},\
{\"name\":\"Bob\",\"age\":30,\"city\":\"San Francisco\"}]";
/* map */
map_t my_map;
int main(int argc, char *argv[])
{
/* 初始化 map */
hashmap_init(&my_map, hashmap_hash_string, hashmap_compare_string, 0);
/* 解析json字符串 */
json_t* json_root;
json_error_t json_error;
json_root = json_loads(json_string, 0, &json_error);
/* 遍歷json數組 */
int i;
json_t* json_array_item;
json_array_foreach(json_root, i, json_array_item){
const char* name = json_string_value(json_object_get(json_array_item, "name"));
int age = json_integer_value(json_object_get(json_array_item, "age"));
const char* city = json_string_value(json_object_get(json_array_item, "city"));
/* 將解析結果插入map中 */
char* map_key = (char*)calloc(strlen(name)+1, 1);
strcpy(map_key, name);
map_insert(&my_map, map_key, (any_t)age);
}
/* 遍歷map */
map_iter_t iter;
hashmap_iterator(&my_map, &iter);
while (hashmap_next(&iter)) {
const char* key = (const char*)iter.key;
int value = (int)iter.data;
printf("%s: %d\n", key, value);
}
/* 釋放map */
hashmap_free(&my_map);
return 0;
}

上面的代碼演示了如何使用c map來操作json字符串數組。首先,將json字符串解析為json對象,然后遍歷數組,將解析結果插入到map中。最后遍歷map,輸出插入的數據。使用c map操作json字符串數組可以方便的進行查詢和修改,提高了數據操作的效率。