C語(yǔ)言中的List是一個(gè)非常實(shí)用的數(shù)據(jù)結(jié)構(gòu),可以用來(lái)存儲(chǔ)任何類型的數(shù)據(jù)。而在開(kāi)發(fā)中,經(jīng)常需要將List轉(zhuǎn)換成JSON字符串,以便于前端頁(yè)面顯示或者數(shù)據(jù)交互。下面介紹一個(gè)C語(yǔ)言中將List轉(zhuǎn)化成JSON字符串的方法。
//定義List結(jié)構(gòu)體,listNode包含節(jié)點(diǎn)數(shù)據(jù)和指向下一節(jié)點(diǎn)的指針 typedef struct list_node { void *data; struct list_node *next; } ListNode; typedef struct list { int size; ListNode *head; ListNode *tail; void (*free)(void *ptr); //定義釋放節(jié)點(diǎn)數(shù)據(jù)的函數(shù)指針 } List; //遍歷節(jié)點(diǎn),將節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)換成JSON格式的字符串 char* list_to_json(List *list){ char* json_str; ListNode *current_node = list->head; cJSON *json_arr = cJSON_CreateArray(); //創(chuàng)建JSON數(shù)組對(duì)象 while (current_node) { cJSON_AddItemToArray(json_arr, cJSON_CreateString(current_node->data)); //將節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)換成JSON字符串添加到數(shù)組中 current_node = current_node->next; } json_str = cJSON_Print(json_arr); //將JSON數(shù)組對(duì)象轉(zhuǎn)換成JSON字符串 cJSON_Delete(json_arr); //刪除JSON數(shù)組對(duì)象釋放內(nèi)存 return json_str; }
使用以上代碼,可以將C語(yǔ)言中的List轉(zhuǎn)換成JSON字符串,方便數(shù)據(jù)傳輸和顯示。