在C語言中,有一種稱為List(鏈表)的數據結構,它能夠動態地添加和移除元素。當我們需要將這些元素轉化為JSON字符串數組的時候,可以使用以下代碼:
#include#include #include typedef 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結構體,包含名字和年齡兩個屬性以及一個指向下一個Person的指針。然后,我們定義了一個createPerson函數用于創建新的Person對象,以及一個addPersonToList函數用于將Person對象添加到鏈表中。接著,我們定義了一個listToJsonArray函數用于將鏈表中所有的Person轉化為JSON字符串數組。
在listToJsonArray函數中,我們首先創建了一個空的JSON字符串數組。接著,我們使用一個while循環遍歷整個鏈表,對每一個Person對象創建一個新的JSON對象,并將其加入到JSON字符串數組中。最后,我們返回JSON字符串數組。
最后,在main函數中,我們創建了一個鏈表,將其轉化為JSON字符串數組,并打印輸出結果。注意,我們需要使用cJSON_Print函數將JSON字符串數組轉化為字符串,并在使用完畢后釋放內存。