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

c 解析json兩層方法

C語言中解析JSON數(shù)據(jù)是一項(xiàng)非常重要的技能。在本文中,我們將介紹兩種基本的方法用來解析兩層JSON數(shù)據(jù)。

方法1:使用 cJSON 庫

cJSON *json = cJSON_Parse(s); //s為待解析的JSON數(shù)據(jù)
if(!json){
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
}else{
cJSON *data = cJSON_GetObjectItemCaseSensitive(json, "data");
if(cJSON_IsArray(data)){
cJSON_ArrayForEach(item, data){
cJSON *id = cJSON_GetObjectItemCaseSensitive(item, "id");
cJSON *name = cJSON_GetObjectItemCaseSensitive(item, "name");
printf("id: %d, name: %s\n", id->valueint, name->valuestring);
}
}
cJSON_Delete(json);
}

在上述代碼中,我們使用 cJSON 庫來解析 JSON 數(shù)據(jù)。首先,我們將 JSON 數(shù)據(jù)字符串傳遞給 cJSON_Parse 函數(shù),并檢查是否解析成功。接下來,我們使用 cJSON_GetObjectItemCaseSensitive 函數(shù)找到 "data" 對(duì)象的值,并使用 cJSON_IsArray 函數(shù)判斷其是否為一個(gè)數(shù)組類型。如果是,則使用 cJSON_ArrayForEach 函數(shù)遍歷數(shù)組中的每一個(gè)元素,然后再次使用 cJSON_GetObjectItemCaseSensitive 函數(shù)找到該元素的 "id" 和 "name" 值,并將它們輸出到控制臺(tái)上。

方法2:使用 jsmn 庫

int r;
jsmn_parser p;
jsmntok_t t[128]; // t 為解析后的 JSON 令牌
jsmn_init(&p);
r = jsmn_parse(&p, s, strlen(s), t, sizeof(t)/sizeof(t[0])); //s為待解析的JSON數(shù)據(jù)
if(r< 0){
printf("Failed to parse JSON: %d\n", r);
}else{
int i;
int size = r;
for(i=1; i

上述代碼展示了使用 jsmn 庫解析 JSON 數(shù)據(jù)的方法。首先,我們需要定義一個(gè) jsmn_parser 對(duì)象和一個(gè) jsmntok_t 對(duì)象數(shù)組,用來存放解析后的 JSON 令牌。接下來,我們通過調(diào)用 jsmn_parse 函數(shù)來對(duì) JSON 數(shù)據(jù)進(jìn)行解析,并檢查解析結(jié)果是否正確。如果一切順利,我們可以使用遍歷令牌的方式來獲取 JSON 數(shù)據(jù)的值,并輸出到控制臺(tái)上。在本方法中,我們通過判斷令牌的類型和值的內(nèi)容來定位需要的 "data" 數(shù)組,并通過遍歷令牌來獲取數(shù)組元素中的值。