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

c json 存入字典

C JSON 是一種常用的數(shù)據(jù)傳輸格式,在很多應(yīng)用場(chǎng)景中都有廣泛的應(yīng)用。與此同時(shí),字典(Dictionary)也是一種常用的數(shù)據(jù)結(jié)構(gòu),在我們進(jìn)行編程時(shí)也經(jīng)常會(huì)涉及到字典的操作。那么,如何將 C JSON 中的數(shù)據(jù)存入字典呢?下面我們來(lái)看一下具體實(shí)現(xiàn)方法。

#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
#include "uthash.h"
// 定義一個(gè)結(jié)構(gòu)體,用于存儲(chǔ)字典中的數(shù)據(jù)
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);
// 將解析出來(lái)的數(shù)據(jù)存入字典
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);
}
// 根據(jù)鍵名,獲取字典中的數(shù)據(jù)
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 字符串,得到一個(gè) cJSON 對(duì)象。然后,我們定義了一個(gè)結(jié)構(gòu)體 dict_data,用于存儲(chǔ)字典中的數(shù)據(jù)。在將 C JSON 中的數(shù)據(jù)存入字典時(shí),我們使用 cJSON_ArrayForEach 宏,遍歷 cJSON 對(duì)象的每一個(gè)子元素。然后,我們將每一個(gè)子元素存入一個(gè) dict_data 結(jié)構(gòu)體中,并使用哈希表技術(shù)將該結(jié)構(gòu)體存入字典中。

最后,我們可以根據(jù)鍵名,在字典中獲取對(duì)應(yīng)的數(shù)據(jù)。在上面的例子中,我們根據(jù)鍵名 age,從字典中獲取相應(yīng)的數(shù)據(jù),并打印出來(lái)。