C語言可以通過一些庫將list數據結構轉換為JSON格式的字符串,使得C程序能夠接口到其他語言或者互聯網上的JSON服務器。下面我們來看一下具體的方法。
首先,我們需要安裝一個JSON庫。比較常用的有cJSON、Jansson、json-c等。這里我們以cJSON為例,它是一個很小巧但是功能強大的JSON庫。
/* 使用cJSON庫將list轉換成JSON字符串 */ #include#include #include "cJSON.h" typedef struct ListNode { int val; struct ListNode *next; } ListNode; char *list2json(ListNode *head) { cJSON *root = cJSON_CreateArray(); ListNode *cur = head; while (cur != NULL) { cJSON *node = cJSON_CreateObject(); cJSON_AddNumberToObject(node, "val", cur->val); cJSON_AddItemToArray(root, node); cur = cur->next; } char *json_str = cJSON_Print(root); cJSON_Delete(root); return json_str; }
在上面的代碼中,我們定義了一個鏈表節點結構ListNode,然后使用cJSON_CreateArray()創建一個JSON數組,接著遍歷鏈表并把每個節點轉換成一個JSON對象,以"val"為鍵存入數值。最后調用cJSON_Print()轉換成JSON格式字符串,并返回。
最后,我們可以將轉換之后的JSON字符串發送給其他語言的程序,如JavaScript或Python,以完成C程序和其他語言程序之間的數據交互。