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

c json字符串數組解析

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

JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,常用于Web應用程序之間的數據傳輸。C語言也提供了一些解析JSON字符串的庫,其中常用的就是 cJSON。

假設我們有以下JSON字符串:

{"list": [{"name": "張三", "age": 18}, {"name": "李四", "age": 20}]}

它表示一個名為list的數組,其中包含兩個對象,每個對象包含一個name和一個age屬性。我們可以使用cJSON庫來解析這個JSON字符串并訪問它的屬性。

cJSON *root = cJSON_Parse(json);
if(root != NULL)
{
cJSON *list = cJSON_GetObjectItem(root, "list");
if(list != NULL && cJSON_IsArray(list))
{
int size = cJSON_GetArraySize(list);
for(int i=0; i<size; i++)
{
cJSON *item = cJSON_GetArrayItem(list, i);
if(item != NULL && cJSON_IsObject(item))
{
cJSON *name = cJSON_GetObjectItem(item, "name");
cJSON *age = cJSON_GetObjectItem(item, "age");
if(name != NULL && cJSON_IsString(name))
printf("name: %s ", name->valuestring);
if(age != NULL && cJSON_IsNumber(age))
printf("age: %d\n", age->valueint);
}
}
}
cJSON_Delete(root);
}

在這個代碼中,我們首先使用cJSON_Parse函數將JSON字符串解析為cJSON對象。然后使用cJSON_GetObjectItem函數獲取name為list的屬性,并判斷它是否是一個數組。如果是,我們可以使用cJSON_GetArraySize函數獲取數組大小,然后通過cJSON_GetArrayItem函數獲取每個數組元素。在獲取每個對象之后,我們再使用cJSON_GetObjectItem函數獲取它們的屬性值并將其打印出來。最后,我們應該使用cJSON_Delete函數釋放cJSON對象。