在 C 語言中,使用 list (鏈表)來存儲和組織數據是一種常見的操作。但是,在一些情況下需要將鏈表的數據轉換成 JSON 格式,以便進一步處理或傳輸數據。下面我們將介紹在 C 語言中如何將鏈表轉換成 JSON。
#include#include #include #include #include "cJSON.h" // 定義鏈表節點結構體 typedef struct Node { int data; struct Node* next; } Node; // 創建鏈表函數 Node* createList() { Node* head = NULL; Node* tail = NULL; for (int i = 1; i<= 10; i++) { Node* node = (Node*)malloc(sizeof(Node)); node->data = i; node->next = NULL; if (head == NULL) { head = node; tail = node; } else { tail->next = node; tail = node; } } return head; } // 將鏈表轉換成 cJSON 對象函數 cJSON* listToJson(Node* head) { cJSON* json = cJSON_CreateArray(); Node* current = head; while (current != NULL) { cJSON* item = cJSON_CreateObject(); cJSON_AddNumberToObject(item, "data", current->data); cJSON_AddItemToArray(json, item); current = current->next; } return json; } int main() { Node* head = createList(); cJSON* json = listToJson(head); char* jsonStr = cJSON_Print(json); printf("List to JSON:\n%s\n", jsonStr); cJSON_Delete(json); free(jsonStr); return 0; }
在代碼中,我們使用了開源庫 cJSON 來實現將鏈表轉換成 JSON 的操作。首先,我們定義了鏈表節點的結構體,并編寫了一個創建鏈表的函數 createList。接著,我們編寫了一個將鏈表轉換成 cJSON 對象的函數 listToJson,該函數將鏈表節點中的數值取出,轉換成 JSON 的格式,最終返回一個 cJSON 對象。
在主函數中,我們首先調用 createList 函數創建一個含有 10 個節點的鏈表,然后調用 listToJson 函數將這個鏈表轉換成 JSON 對象。最后,我們使用 cJSON_Print 函數將這個 JSON 對象轉換成字符串,并輸出到控制臺上。
總之,通過使用 cJSON 庫,我們可以很方便地將鏈表轉換成 JSON 格式,從而更加靈活地處理和傳輸數據。
上一篇geo_json