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

c 中l(wèi)ist轉(zhuǎn)化為json字符串數(shù)組

夏志豪1年前8瀏覽0評論

在C語言中,有一種稱為List(鏈表)的數(shù)據(jù)結(jié)構(gòu),它能夠動態(tài)地添加和移除元素。當我們需要將這些元素轉(zhuǎn)化為JSON字符串數(shù)組的時候,可以使用以下代碼:

#include#include#includetypedef struct Person {
char* name;
int age;
struct Person* next;
} Person;
Person* createPerson(char* name, int age) {
Person* newPerson = (Person*)malloc(sizeof(Person));
newPerson->name = name;
newPerson->age = age;
newPerson->next = NULL;
return newPerson;
}
Person* addPersonToList(Person* head, char* name, int age) {
Person* newPerson = createPerson(name, age);
newPerson->next = head;
return newPerson;
}
cJSON* listToJsonArray(Person* head) {
cJSON* jsonArray = cJSON_CreateArray();
while (head) {
cJSON* personJson = cJSON_CreateObject();
cJSON_AddStringToObject(personJson, "name", head->name);
cJSON_AddNumberToObject(personJson, "age", head->age);
cJSON_AddItemToArray(jsonArray, personJson);
head = head->next;
}
return jsonArray;
}
int main() {
Person* head = NULL;
head = addPersonToList(head, "Alice", 20);
head = addPersonToList(head, "Bob", 25);
head = addPersonToList(head, "Carol", 30);
cJSON* jsonArray = listToJsonArray(head);
char* jsonString = cJSON_Print(jsonArray);
printf("%s\n", jsonString);
free(jsonString);
cJSON_Delete(jsonArray);
return 0;
}

首先,我們定義一個Person結(jié)構(gòu)體,包含名字和年齡兩個屬性以及一個指向下一個Person的指針。然后,我們定義了一個createPerson函數(shù)用于創(chuàng)建新的Person對象,以及一個addPersonToList函數(shù)用于將Person對象添加到鏈表中。接著,我們定義了一個listToJsonArray函數(shù)用于將鏈表中所有的Person轉(zhuǎn)化為JSON字符串數(shù)組。

在listToJsonArray函數(shù)中,我們首先創(chuàng)建了一個空的JSON字符串數(shù)組。接著,我們使用一個while循環(huán)遍歷整個鏈表,對每一個Person對象創(chuàng)建一個新的JSON對象,并將其加入到JSON字符串數(shù)組中。最后,我們返回JSON字符串數(shù)組。

最后,在main函數(shù)中,我們創(chuàng)建了一個鏈表,將其轉(zhuǎn)化為JSON字符串數(shù)組,并打印輸出結(jié)果。注意,我們需要使用cJSON_Print函數(shù)將JSON字符串數(shù)組轉(zhuǎn)化為字符串,并在使用完畢后釋放內(nèi)存。