c語言是目前應用廣泛的編程語言之一,其功能強大,靈活性高,可適用于各種不同的應用領域。在c語言中,我們經常會使用到list等數據結構,而將多個list轉為json對象是一項常見的操作。下面我們將介紹如何使用c語言實現多個list轉json對象。
#include#include #include #include #define MAX_LEN 1024 typedef struct { int id; char name[20]; }Person; typedef struct _ListNode { Person data; struct _ListNode * next; }ListNode, *ListPtr; ListPtr CreatePersonList() { //創建一個Person類型的鏈表 } cJSON * ConvertListToJson(ListPtr list) { cJSON * root = cJSON_CreateArray(); ListPtr ptr = list; while (ptr) { cJSON * item = cJSON_CreateObject(); cJSON_AddNumberToObject(item, "id", ptr->data.id); cJSON_AddStringToObject(item, "name", ptr->data.name); cJSON_AddItemToArray(root, item); ptr = ptr->next; } return root; } int main() { ListPtr list1 = CreatePersonList(); ListPtr list2 = CreatePersonList(); cJSON * root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "list1", ConvertListToJson(list1)); cJSON_AddItemToObject(root, "list2", ConvertListToJson(list2)); char * jStr = cJSON_Print(root); printf("%s\n", jStr); cJSON_Delete(root); free(jStr); return 0; }
上面的代碼實現了兩個Person類型的鏈表轉為json對象。首先創建了一個Person類型的鏈表,并通過CreatePersonList函數創建鏈表,具體實現可參照鏈表的創建與遍歷。然后通過ConvertListToJson函數將鏈表轉為json對象。其中,cJSON_CreateObject函數用來創建json對象,cJSON_AddItemToObject函數用來添加對象,cJSON_AddNumberToObject和cJSON_AddStringToObject函數用來添加相應類型的數據。最后,使用cJSON_Print函數將json對象轉為字符串輸出。