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

c 如何將json轉(zhuǎn)換為對象數(shù)組中

老白1年前9瀏覽0評論

在C語言中,將JSON格式的字符串轉(zhuǎn)換為對象數(shù)組是一項很常見的任務(wù)。下面介紹一種簡單的方法,該方法使用第三方庫cJSON。

首先,需要從cJSON官網(wǎng)上下載并安裝cJSON庫。安裝完成后,就可以開始將JSON字符串轉(zhuǎn)換為對象數(shù)組了。

以下是一個簡單的示例程序:

#include#include#include#include "cJSON.h"
typedef struct {
int id;
char name[50];
int age;
} Person;
int main() {
char *json_string = "{\"people\":[{\"id\":1,\"name\":\"Alice\",\"age\":20},{\"id\":2,\"name\":\"Bob\",\"age\":25}]}";
cJSON *root = cJSON_Parse(json_string);
cJSON *people = cJSON_GetObjectItem(root, "people");
int len = cJSON_GetArraySize(people);
Person *array = (Person *) malloc(sizeof(Person) * len);
for (int i = 0; i< len; i++) {
cJSON *personObject = cJSON_GetArrayItem(people, i);
cJSON *idObj = cJSON_GetObjectItem(personObject, "id");
cJSON *nameObj = cJSON_GetObjectItem(personObject, "name");
cJSON *ageObj = cJSON_GetObjectItem(personObject, "age");
array[i].id = idObj->valueint;
strcpy(array[i].name, nameObj->valuestring);
array[i].age = ageObj->valueint;
}
cJSON_Delete(root);
for (int i = 0; i< len; i++) {
printf("Person %d: id=%d, name=%s, age=%d\n", i, array[i].id, array[i].name, array[i].age);
}
free(array);
return 0;
}

這個程序?qū)SON字符串解析為一個cJSON對象,然后通過cJSON庫提供的函數(shù)來獲取JSON對象中的值,并將值賦予一個結(jié)構(gòu)體數(shù)組。最后,程序輸出了解析出來的對象數(shù)組。

值得注意的是,這個程序中定義了一個名為“Person”的結(jié)構(gòu)體,它包含三個屬性:id、name和age。我們需要根據(jù)實際情況來設(shè)計自己的結(jié)構(gòu)體。

此外,需要注意的是,在使用完cJSON對象后,需要調(diào)用cJSON_Delete函數(shù)來清除內(nèi)存。