C語言中的List數(shù)據(jù)結(jié)構(gòu)是一種非常常見的數(shù)據(jù)結(jié)構(gòu),它可以很方便地操作一系列元素,同時也可以很容易地被轉(zhuǎn)化成JSON格式,方便進(jìn)行網(wǎng)絡(luò)傳輸和存儲。
typedef struct Node { int data; struct Node *next; } Node; typedef struct List { Node *head; Node *tail; int size; } List; List *listInit() { List *list = (List *)malloc(sizeof(List)); list->head = NULL; list->tail = NULL; list->size = 0; return list; } void listAdd(List *list, int data) { Node *newNode = (Node *)malloc(sizeof(Node)); newNode->data = data; newNode->next = NULL; if (list->head == NULL) { list->head = newNode; list->tail = newNode; } else { list->tail->next = newNode; list->tail = newNode; } list->size++; } char *listToJson(List *list) { char *json = (char *)malloc(sizeof(char) * 1024); memset(json, '\0', 1024); strcat(json, "["); Node *cur = list->head; for (int i = 0; i< list->size; i++) { char str[10]; sprintf(str, "%d", cur->data); strcat(json, str); if (i< list->size - 1) { strcat(json, ","); } cur = cur->next; } strcat(json, "]"); return json; } int main() { List *list = listInit(); listAdd(list, 1); listAdd(list, 2); listAdd(list, 3); char *json = listToJson(list); printf("%s\n", json); free(json); return 0; }
以上是一個簡單的List數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化成JSON的例子。通過添加不同的元素,可以很方便地轉(zhuǎn)化成一個符合JSON格式要求的字符串,實現(xiàn)網(wǎng)絡(luò)傳輸或存儲的需求。