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

c 中的各種json取值

老白1年前11瀏覽0評論

C語言中使用JSON進行數據處理時,取值操作是非常常見的需求。下面介紹幾種常見的JSON取值方法。

//假設已經解析出了以下JSON數據
char* data = "{\"name\":\"Tom\",\"age\":20,\"grades\":[89,94,78],\"address\":{\"province\":\"Shanghai\",\"city\":\"Shanghai\",\"location\":{\"latitude\":31.231582,\"longitude\":121.472640}}}";
//1. 使用cJSON_GetObjectItem獲取對象成員
//獲取name屬性
cJSON* obj = cJSON_Parse(data);
cJSON* nameObj = cJSON_GetObjectItem(obj, "name");
if(nameObj != NULL){
printf("name: %s\n", nameObj->valuestring);
}
//獲取grades數組
cJSON* gradesObj = cJSON_GetObjectItem(obj, "grades");
int gradesCount = cJSON_GetArraySize(gradesObj);
for(int i=0; ivalueint);
}
//獲取location對象的longitude屬性
cJSON* addressObj = cJSON_GetObjectItem(obj, "address");
cJSON* locationObj = cJSON_GetObjectItem(addressObj, "location");
double longitude = cJSON_GetObjectItem(locationObj, "longitude")->valuedouble;
printf("longitude: %f\n", longitude);
//2. 使用cJSON_GetObjectItemCaseSensitive獲取對象成員(大小寫敏感)
//與cJSON_GetObjectItem類似,但區分屬性名大小寫
cJSON* nameObj2 = cJSON_GetObjectItemCaseSensitive(obj, "Name");
//3. 使用cJSON_GetObjectItemCaseSensitive的重載方法獲取數字類型屬性
int age = cJSON_GetObjectItemCaseSensitive(obj, "age")->valueint;
double latitude = cJSON_GetObjectItemCaseSensitive(locationObj, "latitude")->valuedouble;

通過以上取值方法,可以方便地獲取JSON中的各種數據類型,靈活地處理JSON數據。