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

c list轉換為json

林子帆2年前9瀏覽0評論

在C語言中,list是一種非常常用的數據結構。而在現代web應用中,JSON也是必不可少的數據交換格式。

因此,在C語言中將list轉換為JSON也是一種常見的需求。下面介紹一種方法,通過使用第三方庫cJSON來完成。

#include#include#include "cJSON.h"
typedef struct Node {
int val;
struct Node* next;
} Node;
Node* create_node(int val) {
Node* node = malloc(sizeof(Node));
node->val = val;
node->next = NULL;
return node;
}
void add_node(Node** head, int val) {
Node* node = create_node(val);
node->next = *head;
*head = node;
}
void print_list(Node* head) {
while (head != NULL) {
printf("%d ", head->val);
head = head->next;
}
printf("\n");
}
cJSON* list_to_json(Node* head) {
cJSON* array = cJSON_CreateArray();
while (head != NULL) {
cJSON_AddItemToArray(array, cJSON_CreateNumber(head->val));
head = head->next;
}
return array;
}
int main() {
Node* head = NULL;
add_node(&head, 3);
add_node(&head, 2);
add_node(&head, 1);
print_list(head);
cJSON* json = list_to_json(head);
char* str = cJSON_Print(json);
printf("%s\n", str);
cJSON_Delete(json);
free(str);
return 0;
}

以上代碼中,我們首先定義了一個Node結構體,包含了一個整數值和一個指向下一個節點的指針。我們使用add_node函數向鏈表中添加節點,使用print_list函數打印鏈表的內容。

接下來,我們使用list_to_json函數將鏈表轉換為JSON格式的數組。在該函數中,我們使用cJSON_CreateArray函數創建一個空數組,然后遍歷鏈表中的節點,使用cJSON_AddItemToArray函數將每一個整數值添加到數組中。最終返回該數組。

在main函數中,我們創建一個鏈表,向其中添加三個節點,并打印它們的內容。然后將鏈表轉換為JSON格式,并使用cJSON_Print函數將其轉換為字符串打印出來。最后,我們需要手動釋放JSON對象和字符串。

使用cJSON庫可以很方便地將C中的數據結構轉換為JSON格式。這對于Web應用和其他需要進行數據交換的程序來說非常有用。