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

c 解析json listmap

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

JSON是一種輕量級的數(shù)據(jù)交換格式,它有著類似于字典的形式,可以包含list和map兩種數(shù)據(jù)結(jié)構(gòu),在C語言中解析JSON數(shù)據(jù),可以使用現(xiàn)有的第三方庫,例如cJSON。

使用cJSON解析JSON數(shù)據(jù),需要先導(dǎo)入cJSON頭文件,然后使用cJSON_Parse函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)換為cJSON結(jié)構(gòu)。在cJSON結(jié)構(gòu)中,list使用cJSON_Array對象,map使用cJSON_Object對象。

#include "cJSON.h"
...
cJSON *root = cJSON_Parse(jsonStr);
if (root == NULL) {
// JSON數(shù)據(jù)解析失敗
return;
}
// 解析list
cJSON *list = cJSON_GetObjectItem(root, "list");
if (list != NULL && cJSON_IsArray(list)) {
int size = cJSON_GetArraySize(list);
for (int i = 0; i< size; i++) {
cJSON *item = cJSON_GetArrayItem(list, i);
if (item == NULL || !cJSON_IsObject(item)) {
continue;
}
// 解析map
cJSON *name = cJSON_GetObjectItem(item, "name");
cJSON *age = cJSON_GetObjectItem(item, "age");
if (name != NULL && age != NULL && cJSON_IsString(name) && cJSON_IsNumber(age)) {
printf("name: %s age: %d\n", name->valuestring, age->valueint);
}
}
}
cJSON_Delete(root);

在解析JSON數(shù)據(jù)時,需要使用cJSON提供的API函數(shù),例如cJSON_Parse、cJSON_GetObjectItem、cJSON_GetArraySize、cJSON_GetArrayItem等函數(shù)。使用這些函數(shù)可以方便地讀取JSON數(shù)據(jù)中的具體信息。

總的來說,使用cJSON解析JSON數(shù)據(jù)非常方便,只需要導(dǎo)入頭文件、調(diào)用相關(guān)函數(shù)即可獲取JSON數(shù)據(jù)中的信息。同時,cJSON還支持將JSON數(shù)據(jù)轉(zhuǎn)換為字符串、添加數(shù)據(jù)到JSON數(shù)據(jù)中等功能。

上一篇db.json