C語言中的列表(list)結構是一種動態分配內存的數據結構,可以根據需要在程序運行時添加、刪除元素。在需要將列表中的數據進行傳輸、存儲或展示時,可以將其轉換為JSON字符串。
#include <stdio.h> #include <cJSON.h> typedef struct node{ int value; struct node *next; } ListNode; int main(){ // 初始化列表 ListNode *head = NULL; ListNode *tail = NULL; for(int i=1; i<=5; i++){ ListNode *node = (ListNode*)malloc(sizeof(ListNode)); node->value = i; node->next = NULL; if(head == NULL){ head = node; tail = node; }else{ tail->next = node; tail = node; } } // 轉換為JSON字符串 cJSON *root = cJSON_CreateArray(); ListNode *cur = head; while(cur != NULL){ cJSON *item = cJSON_CreateObject(); cJSON_AddNumberToObject(item, "value", cur->value); cJSON_AddItemToArray(root, item); cur = cur->next; } char *jsonStr = cJSON_Print(root); // 打印JSON字符串 printf("JSON string: %s\n", jsonStr); // 釋放內存 cJSON_Delete(root); free(jsonStr); ListNode *temp; while(head != NULL){ temp = head; head = head->next; free(temp); } return 0; }
上述代碼中,首先定義了一個ListNode結構,用于保存列表中的元素。然后利用malloc動態申請內存,創建了一個包含5個元素的列表。接著使用cJSON庫中的函數將該列表轉換為JSON數組,在每個元素中添加value屬性和對應的值。最后將JSON對象打印出來,并釋放相關內存。
上一篇python+下拉刷新
下一篇mysql關閉tcp