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

c 將json數組轉為對象

錢衛國1年前7瀏覽0評論

在C語言中,常常需要將JSON數組轉為對象,以方便處理數據。以下是使用cJSON庫,將JSON數組轉為對象的示例。

#include <stdio.h>
#include <cJSON.h>
int main() {
char *str = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":25}]";
cJSON *json = cJSON_Parse(str);
if (json != NULL) {
if (cJSON_IsArray(json)) {
int size = cJSON_GetArraySize(json);
for (int i = 0; i< size; i++) {
cJSON *item = cJSON_GetArrayItem(json, i);
if (item != NULL && cJSON_IsObject(item)) {
cJSON *name = cJSON_GetObjectItem(item, "name");
cJSON *age = cJSON_GetObjectItem(item, "age");
if (name != NULL && age != NULL && cJSON_IsString(name) && cJSON_IsNumber(age)) {
printf("Name: %s, Age: %d\n", name->valuestring, age->valueint);
}
}
}
}
cJSON_Delete(json);
}
return 0;
}

首先,在代碼中定義了一個JSON數組字符串,接著使用cJSON_Parse()函數將其解析為cJSON結構體。如果解析失敗,則返回NULL。

接下來,使用宏判斷是否為JSON數組。如果是,則使用函數獲取數組長度,并使用函數獲取數組元素。

對于每個數組元素,使用宏判斷是否為JSON對象。如果是,則使用函數獲取對象屬性。

最后,根據屬性值類型使用宏進行判斷,并使用valuestring和valueint成員獲取屬性值。

使用以上方法,就可以將JSON數組轉為對象,并提取其中的屬性值。