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

c 獲取多層json數據

林國瑞1年前8瀏覽0評論

C語言中操作JSON數據通常使用第三方庫,比如cJSON。cJSON是一個輕量級的C語言JSON解析器,它可以獲取多層JSON數據。

獲取多層JSON數據需要使用cJSON的指針遍歷功能。比如我們要獲取以下JSON數據:

{
"name": "小明",
"age": 18,
"score": {
"math": 98,
"english": 80
},
"address": {
"province": "廣東省",
"city": "深圳市",
"street": "xx路xx號"
}
}

使用cJSON獲取該JSON數據的過程如下:

cJSON *root = cJSON_Parse(json_str);  // 解析JSON字符串
// 獲取name字段
cJSON *name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
// 獲取age字段
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
// 獲取score字段
cJSON *score = cJSON_GetObjectItem(root, "score");
// 獲取math字段
cJSON *math = cJSON_GetObjectItem(score, "math");
printf("math: %d\n", math->valueint);
// 獲取english字段
cJSON *english = cJSON_GetObjectItem(score, "english");
printf("english: %d\n", english->valueint);
// 獲取address字段
cJSON *address = cJSON_GetObjectItem(root, "address");
// 獲取province字段
cJSON *province= cJSON_GetObjectItem(address, "province");
printf("province: %s\n", province->valuestring);
// 獲取city字段
cJSON *city = cJSON_GetObjectItem(address, "city");
printf("city: %s\n", city->valuestring);
// 獲取street字段
cJSON *street = cJSON_GetObjectItem(address, "street");
printf("street: %s\n", street->valuestring);

以上代碼通過cJSON_GetObjectItem函數獲取JSON數據中的子項,并使用指針遍歷功能獲取多層數據。

注意:獲取JSON數據中的字段名和數據類型需要與實際JSON數據保持一致。