欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c list 轉(zhuǎn)換為json對象數(shù)組中

傅智翔2年前8瀏覽0評論

C語言開發(fā)中,常常需要將一些數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成JSON格式,特別是將C list轉(zhuǎn)換成JSON對象數(shù)組。下面我們來介紹如何將C list轉(zhuǎn)換成JSON對象數(shù)組。

#include <stdio.h>
#include <stdlib.h>
#include <cjson/cJSON.h>
#define LIST_SIZE 3
struct Node {
int data;
struct Node *next;
};
void displayList(struct Node **head_ref) {
struct Node *current = *head_ref;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
struct Node *createNode(int data) {
struct Node *newNode = (struct Node*) malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}
void insertNode(struct Node **head_ref, int data) {
if (*head_ref == NULL) {
*head_ref = createNode(data);
return;
}
struct Node *last = *head_ref;
while (last->next != NULL) {
last = last->next;
}
last->next = createNode(data);
}
cJSON *listToJson(struct Node **head_ref) {
if (*head_ref == NULL) {
return NULL;
}
cJSON *root = cJSON_CreateArray();
struct Node *current = *head_ref;
while (current != NULL) {
cJSON *node = cJSON_CreateObject();
cJSON_AddNumberToObject(node, "data", current->data);
cJSON_AddItemToArray(root, node);
current = current->next;
}
return root;
}
int main(int argc, char *argv[]) {
int i;
struct Node *head = NULL;
for (i = 1; i<= LIST_SIZE; i++) {
insertNode(&head, i);
}
printf("List: ");
displayList(&head);
cJSON *json = listToJson(&head);
char *jsonString = cJSON_Print(json);
printf("JSON: %s\n", jsonString);
free(jsonString);
cJSON_Delete(json);
return 0;
}

以上代碼實(shí)現(xiàn)了將C list轉(zhuǎn)換成JSON對象數(shù)組的功能。首先定義了一個(gè)結(jié)構(gòu)體Node表示鏈表節(jié)點(diǎn)。然后定義了相關(guān)函數(shù)用于鏈表的創(chuàng)建、插入和遍歷等操作。最重要的是listToJson函數(shù),該函數(shù)將鏈表轉(zhuǎn)換成JSON對象數(shù)組。其中,cJSON_CreateArray用于創(chuàng)建JSON數(shù)組,cJSON_CreateObject用于創(chuàng)建JSON對象,cJSON_AddNumberToObject用于添加數(shù)字類型的鍵值對。

最后,在main函數(shù)中創(chuàng)建了一個(gè)大小為3的鏈表,并調(diào)用listToJson函數(shù)將其轉(zhuǎn)換成JSON對象數(shù)組。然后使用cJSON_Print函數(shù)將JSON對象數(shù)組轉(zhuǎn)換成JSON字符串,并打印輸出。