C語言中提供了很多操作鏈表的庫,而將鏈表轉換成JSON字符串數組是我們在Web開發中經常需要的操作之一。這篇文章將介紹如何使用C語言將鏈表轉換成JSON字符串數組。
#include <stdio.h> #include <stdlib.h> #include <string.h> /*定義鏈表節點結構體*/ typedef struct Node{ int data; struct Node *next; }Node; /*定義鏈表結構體*/ typedef struct List{ Node *head; Node *tail; }List; /*初始化鏈表*/ void initList(List *list){ list->head = NULL; list->tail = NULL; } /*向鏈表中插入節點*/ void insertNode(List *list,int data){ Node *node = (Node *)malloc(sizeof(Node)); node->data = data; node->next = NULL; if(list->head == NULL){ list->head = node; list->tail = node; }else{ list->tail->next = node; list->tail = node; } } /*將鏈表轉換成JSON字符串數組*/ void listToJson(List *list,char *json){ Node *p = list->head; strcat(json,"["); while(p != NULL){ char temp[10]; sprintf(temp,"%d",p->data); strcat(json,"\""); strcat(json,temp); strcat(json,"\""); p = p->next; if(p != NULL){ strcat(json,","); } } strcat(json,"]"); } /*測試代碼*/ int main(){ List list; initList(&list); insertNode(&list,1); insertNode(&list,2); insertNode(&list,3); insertNode(&list,4); char json[100] = ""; listToJson(&list,json); printf("list to json:%s\n",json); return 0; }
在上述代碼中,我們定義了一個雙向鏈表結構體List,以及一個鏈表節點結構體Node,并且定義了初始化鏈表、向鏈表中插入節點、將鏈表轉換成JSON字符串數組等函數。最后我們使用main函數進行測試,并最終輸出了JSON字符串數組。