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

c json 遍歷屬性值

謝彥文1年前8瀏覽0評論

C語言已經(jīng)成為了很多開發(fā)人員編寫軟件的首選語言,而在這樣的一個背景下,JSON格式數(shù)據(jù)已經(jīng)成為了非常廣泛使用的一種數(shù)據(jù)格式。如果我們想要在C語言中解析JSON數(shù)據(jù),那么我們就需要掌握遍歷JSON屬性值的方法。

例子JSON字符串:
{
"name": "Tom",
"age": 25,
"hobbies": ["reading", "swimming", "running"],
"address": {
"country": "China",
"province": "Guangdong",
"city": "Shenzhen"
}
}

我們可以使用cJSON這個庫來解析JSON數(shù)據(jù),具體的步驟如下:

// 在代碼中引入cJSON庫
#include "cJSON.h"
// 定義一個JSON數(shù)據(jù)字符串
char *jsonStr = "{\"name\":\"Tom\",\"age\":25,\"hobbies\":[\"reading\",\"swimming\",\"running\"],\"address\":{\"country\":\"China\",\"province\":\"Guangdong\",\"city\":\"Shenzhen\"}}";
// 將JSON數(shù)據(jù)解析成cJSON對象
cJSON *json = cJSON_Parse(jsonStr);
// 獲取JSON中的屬性值
cJSON *nameObj = cJSON_GetObjectItem(json, "name");
char *name = cJSON_GetStringValue(nameObj);
printf("The name is %s\n", name);
cJSON *ageObj = cJSON_GetObjectItem(json, "age");
int age = cJSON_GetNumberValue(ageObj);
printf("The age is %d\n", age);
cJSON *hobbiesObj = cJSON_GetObjectItem(json, "hobbies");
int hobbyCount = cJSON_GetArraySize(hobbiesObj);
for (int i = 0; i< hobbyCount; i++) {
cJSON *hobbyObj = cJSON_GetArrayItem(hobbiesObj, i);
char *hobby = cJSON_GetStringValue(hobbyObj);
printf("The %d hobby is %s\n", i+1, hobby);
}
cJSON *addressObj = cJSON_GetObjectItem(json, "address");
cJSON *countryObj = cJSON_GetObjectItem(addressObj, "country");
char *country = cJSON_GetStringValue(countryObj);
printf("The country is %s\n", country);
cJSON *provinceObj = cJSON_GetObjectItem(addressObj, "province");
char *province = cJSON_GetStringValue(provinceObj);
printf("The province is %s\n", province);
cJSON *cityObj = cJSON_GetObjectItem(addressObj, "city");
char *city = cJSON_GetStringValue(cityObj);
printf("The city is %s\n", city);
// 釋放資源
cJSON_Delete(json);

通過使用cJSON這個庫,我們可以簡單方便地解析JSON數(shù)據(jù),并且輕松地獲取到JSON對象中的屬性值。掌握了這樣的遍歷屬性值的方法,我們就可以在C語言中處理JSON格式數(shù)據(jù),從而開發(fā)出更加強(qiáng)大的應(yīng)用。