C語言中的鏈表是一種非常常見的數(shù)據(jù)結構,它可以實現(xiàn)高效的數(shù)據(jù)插入和刪除操作。而JSON則是一種輕量級的數(shù)據(jù)交換格式,它被廣泛應用于互聯(lián)網(wǎng)和移動應用程序中。
在實際的開發(fā)工作中,我們可能需要將鏈表結構的數(shù)據(jù)以JSON格式進行傳輸或者存儲。這時候,我們可以使用C語言中的JSON庫來實現(xiàn)。
#include <stdio.h> #include <jansson.h> typedef struct node{ int data; struct node *next; }Node; int main(){ Node *head = NULL; Node *tail = NULL; //創(chuàng)建鏈表 for(int i=0;i<5;i++){ Node *new_node = (Node*)malloc(sizeof(Node)); new_node->data = i; new_node->next = NULL; if(head==NULL){ head = new_node; tail = new_node; }else{ tail->next = new_node; tail = new_node; } } //將鏈表轉(zhuǎn)化為JSON字符串 json_t *json = json_array(); Node *temp = head; while(temp!=NULL){ json_t *j = json_integer(temp->data); json_array_append(json,j); temp = temp->next; } char *json_str = json_dumps(json,JSON_INDENT(4)); printf("%s\n",json_str); //釋放內(nèi)存 temp = head; while(temp!=NULL){ Node *del = temp; temp = temp->next; free(del); } free(json_str); json_decref(json); return 0; }
在上述代碼中,我們使用了jansson庫中的json_array、json_integer和json_dumps函數(shù)來將鏈表轉(zhuǎn)化為JSON格式的字符串。最后,我們也要記得釋放內(nèi)存。