C語言中的鏈表(list)是一種十分常用的數據結構,它可以容納不同類型的數據,并且可以動態擴展和收縮。而JSON(JavaScript Object Notation)則是一種輕量級的數據交換格式,常用于前端頁面的數據傳輸和存儲。將鏈表轉換為JSON格式,可以方便地使用它們在不同系統和平臺之間進行數據交換。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct node { int data; struct node *next; } ListNode; ListNode *createList(int arr[], int n) { ListNode *head = NULL; for (int i = n-1; i >= 0; i--) { ListNode *node = (ListNode *)malloc(sizeof(ListNode)); node->data = arr[i]; node->next = head; head = node; } return head; } json_t *listToJson(ListNode *head) { json_t *jsonList = json_array(); for (ListNode *node = head; node != NULL; node = node->next) { json_t *jsonNode = json_object(); json_object_set_new(jsonNode, "data", json_integer(node->data)); if (node->next) json_object_set_new(jsonNode, "next", json_string("true")); else json_object_set_new(jsonNode, "next", json_string("false")); json_array_append_new(jsonList, jsonNode); } return jsonList; } int main() { int arr[] = {1, 2, 3, 4, 5}; ListNode *head = createList(arr, 5); json_t *jsonList = listToJson(head); char *jsonStr = json_dumps(jsonList, JSON_INDENT(4)); printf("%s\n", jsonStr); free(jsonStr); json_decref(jsonList); return 0; }
上述代碼演示了如何將一個鏈表轉換為JSON格式。首先定義了一個節點結構體,然后使用createList函數創建一個由數組構成的鏈表。接著,編寫了一個listToJson函數,將鏈表轉換為JSON格式的函數。這個函數遍歷鏈表,在每個節點處創建一個JSON對象,并將該節點的數據和是否有下一個節點存儲到該對象中。最后,將所有節點的JSON對象存儲到一個JSON數組中,并返回該數組。
在主函數中,首先創建了一個鏈表,然后使用listToJson函數將它轉換為JSON格式,最后使用json_dumps函數將JSON數組轉換為JSON字符串,并打印輸出。最后,釋放內存并退出程序。
上一篇python 文檔的使用
下一篇python 視頻課掛機