如果你想在程序中使用 JSON 格式,將 C 語言中的鏈表轉(zhuǎn)換為 JSON 格式是一個很有用的操作。這可以方便地將鏈表數(shù)據(jù)傳遞給其他應(yīng)用程序或保存到文件中。下面我將教你如何將 C 語言中的鏈表轉(zhuǎn)換為 JSON 格式。
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> typedef struct node { int data; struct node *next; } Node; Node *createNode(int data) { Node *newNode = (Node*) malloc(sizeof(Node)); newNode->data = data; newNode->next = NULL; return newNode; } void addNode(Node **head, int data) { Node *newNode = createNode(data); newNode->next = *head; *head = newNode; } cJSON *listToJson(Node *head) { cJSON *json, *jsonList; json = cJSON_CreateObject(); jsonList = cJSON_CreateArray(); while (head) { cJSON_AddItemToArray(jsonList, cJSON_CreateNumber(head->data)); head = head->next; } cJSON_AddItemToObject(json, "list", jsonList); return json; } int main() { Node *head = NULL; addNode(&head, 3); addNode(&head, 5); addNode(&head, 7); cJSON *json = listToJson(head); char *jsonStr = cJSON_Print(json); printf("JSON: %s\n", jsonStr); cJSON_Delete(json); free(jsonStr); return 0; }
首先,我們創(chuàng)建了一個包含數(shù)據(jù)和下一個節(jié)點的 C 鏈表。然后,我們實現(xiàn)了將節(jié)點添加到鏈表末尾的函數(shù)。接著,我們使用 cJSON 庫創(chuàng)建了一個列表,并將鏈表中的數(shù)據(jù)添加到列表中。最后,我們創(chuàng)建了 JSON 對象,并將它們轉(zhuǎn)換為 JSON 字符串,這可以方便地用于網(wǎng)絡(luò)套接字或文件中的讀寫。
在本例中,我們將鏈表轉(zhuǎn)換為 JSON 格式,該格式類似于以下內(nèi)容:
{ "list": [3, 5, 7] }
這里我們使用cJSON庫,cJSON是一個輕量級的JSON解析生成庫,支持跨平臺、無依賴,并提供新手友好的API。我們使用了它的基礎(chǔ)函數(shù)來快速地生成JSON對象。