色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c list轉(zhuǎn)換為json

李中冰2年前7瀏覽0評論

C List是一種動態(tài)的數(shù)據(jù)結(jié)構(gòu),可以實現(xiàn)自適應(yīng)內(nèi)存分配、插入、刪除等操作,在C語言中廣泛使用。而JSON則是一種輕量級的數(shù)據(jù)交換格式,常用于前后端數(shù)據(jù)傳輸。因此,將C List轉(zhuǎn)換為JSON十分必要。

#include#include#include#includetypedef struct _node {
int value;
struct _node *next;
} Node;
int main() {
Node *head = NULL, *prev = NULL, *curr = NULL;
for (int i = 0; i< 5; i++) {
curr = (Node *)malloc(sizeof(Node));
curr->value = i;
curr->next = NULL;
if (i == 0) {
head = curr;
}
if (prev != NULL) {
prev->next = curr;
}
prev = curr;
}
cJSON *json = cJSON_CreateArray();
curr = head;
while (curr != NULL) {
cJSON *item = cJSON_CreateObject();
cJSON_AddNumberToObject(item, "value", curr->value);
cJSON_AddItemToArray(json, item);
curr = curr->next;
}
char *json_str = cJSON_Print(json);
printf("%s\n", json_str);
free(json_str);
cJSON_Delete(json);
curr = head;
while (curr != NULL) {
prev = curr->next;
free(curr);
curr = prev;
}
return 0;
}

以上代碼演示了將一個包含5個元素的C List轉(zhuǎn)換為JSON的過程。首先定義了一個簡單的Node結(jié)構(gòu)體,包含value和next兩個成員。然后創(chuàng)建了一個5個元素的鏈表,每個元素的value為i,最后一個節(jié)點的next指針為NULL,表示鏈表結(jié)束。此處為了方便演示代碼并未加入錯誤處理和內(nèi)存釋放等操作。

接下來,使用cJSON庫的函數(shù),創(chuàng)建一個空的JSON數(shù)組。然后用while循環(huán)遍歷鏈表,將每個元素封裝成JSON對象,再將JSON對象添加到JSON數(shù)組中。最后,使用cJSON_Print函數(shù)將JSON數(shù)組轉(zhuǎn)換為字符串,并輸出到控制臺中。

最后,需要記得釋放內(nèi)存。釋放JSON字符串內(nèi)存的函數(shù)為free,釋放JSON數(shù)組內(nèi)存的函數(shù)為cJSON_Delete。同時,需要遍歷整個鏈表,釋放每個Node節(jié)點的內(nèi)存。