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

c json 存入字典

劉柏宏2年前10瀏覽0評論

C JSON 是一種常用的數據傳輸格式,在很多應用場景中都有廣泛的應用。與此同時,字典(Dictionary)也是一種常用的數據結構,在我們進行編程時也經常會涉及到字典的操作。那么,如何將 C JSON 中的數據存入字典呢?下面我們來看一下具體實現方法。

#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
#include "uthash.h"
// 定義一個結構體,用于存儲字典中的數據
struct dict_data {
char key[64];
cJSON *value;
UT_hash_handle hh;
};
int main() {
// 解析 C JSON 字符串
char *json_str = "{\"username\":\"Tom\", \"age\":18}";
cJSON *root = cJSON_Parse(json_str);
// 將解析出來的數據存入字典
struct dict_data *dict = NULL;
cJSON *child = NULL;
cJSON_ArrayForEach(child, root) {
struct dict_data *data = malloc(sizeof(struct dict_data));
sprintf(data->key, "%s", child->string);
data->value = child;
HASH_ADD_STR(dict, key, data);
}
// 根據鍵名,獲取字典中的數據
struct dict_data *data;
char *key = "age";
HASH_FIND_STR(dict, key, data);
if (data) {
printf("%s: %d\n", key, cJSON_GetNumberValue(data->value));
}
}

在上面的代碼中,我們首先需要解析 C JSON 字符串,得到一個 cJSON 對象。然后,我們定義了一個結構體 dict_data,用于存儲字典中的數據。在將 C JSON 中的數據存入字典時,我們使用 cJSON_ArrayForEach 宏,遍歷 cJSON 對象的每一個子元素。然后,我們將每一個子元素存入一個 dict_data 結構體中,并使用哈希表技術將該結構體存入字典中。

最后,我們可以根據鍵名,在字典中獲取對應的數據。在上面的例子中,我們根據鍵名 age,從字典中獲取相應的數據,并打印出來。