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

c 多層json

錢良釵2年前8瀏覽0評論

在C語言中,我們經常需要處理JSON數據,而JSON數據中有多層嵌套結構。如何在C語言中處理多層JSON數據呢?下面是一個簡單的例子:

#include#include#include#include "cJSON.h" //需要引入cjson頭文件
int main()
{
char *json_str = "{\"name\":\"小明\",\"age\":23,\"gender\":\"男\",\"address\":{\"country\":\"中國\",\"province\":\"河南\",\"city\":\"鄭州\"}}"; //例子中的JSON字符串
cJSON *json = cJSON_Parse(json_str); //解析JSON字符串
if (json == NULL) //處理解析失敗的情況
{
const char *error_ptr = cJSON_GetErrorPtr();
if (error_ptr != NULL)
{
fprintf(stderr, "Error before: %s\n", error_ptr);
}
exit(EXIT_FAILURE);
}
cJSON *name = cJSON_GetObjectItem(json, "name"); //獲取name字段
printf("name: %s\n", name->valuestring);
cJSON *age = cJSON_GetObjectItem(json, "age"); //獲取age字段
printf("age: %d\n", age->valueint);
cJSON *gender = cJSON_GetObjectItem(json, "gender"); //獲取gender字段
printf("gender: %s\n", gender->valuestring);
cJSON *address = cJSON_GetObjectItem(json, "address"); //獲取address字段
cJSON *country = cJSON_GetObjectItem(address, "country"); //獲取country字段
printf("country: %s\n", country->valuestring);
cJSON *province = cJSON_GetObjectItem(address, "province"); //獲取province字段
printf("province: %s\n", province->valuestring);
cJSON *city = cJSON_GetObjectItem(address, "city"); //獲取city字段
printf("city: %s\n", city->valuestring);
cJSON_Delete(json); //釋放內存
return 0;
}

在代碼中,我們首先定義了一個JSON字符串作為例子,接著用cJSON_Parse函數將其解析成cJSON對象。之后我們獲取了JSON對象中的各個字段,包括name、age、gender和address。其中,address是一個對象,它包含了country、province和city三個字段。我們可以通過鏈式獲取的方式,以此來獲取到address對象中的各個字段。

需要注意的是,在處理多層JSON數據時,我們需要注意對象之間的嵌套關系,以及字段名稱的唯一性。只有這樣才能正確地解析JSON數據。