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

c list轉換json字符串

錢浩然1年前9瀏覽0評論

C語言中,列表是一種非常常見的數據結構。使用C語言的程序開發者通常需要將列表轉換為JSON字符串進行傳輸或存儲。JSON是一種輕量級的數據交換格式,以易于讀寫和語言無關的方式支持結構化數據。下面將介紹如何將C list轉換為JSON字符串。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <jansson.h>
//定義C list結構體
typedef struct node {
int data;
struct node *next;
} node;
//創建節點
node* create_node(int data) {
node *newnode = (node*)malloc(sizeof(node));
newnode->data = data;
newnode->next = NULL;
return newnode;
}
//向列表中添加節點
void add_node(node **head, int data) {
node *newnode = create_node(data);
if (*head == NULL) {
*head = newnode;
} else {
node *current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newnode;
}
}
//將列表轉換為JSON字符串
json_t* list_to_json(node *head) {
json_t *json_list = json_array();
node *current = head;
while (current != NULL) {
json_t *json_node = json_object();
json_object_set_new(json_node, "data", json_integer(current->data));
json_array_append_new(json_list, json_node);
current = current->next;
}
return json_list;
}
int main() {
node *head = NULL;
add_node(&head, 1);
add_node(&head, 2);
add_node(&head, 3);
json_t *json_list = list_to_json(head);
char *json_string = json_dumps(json_list, JSON_INDENT(2));
printf("%s", json_string);
free(json_string);
json_decref(json_list);
return 0;
}

以上代碼中,首先定義了C list的結構體和操作函數。

在主函數中,向列表中添加了三個節點,然后通過調用list_to_json()函數將列表轉換為JSON字符串。

list_to_json()函數中,首先創建了一個名為json_list的JSON數組。然后遍歷鏈表中的每個節點,創建名為json_node的JSON對象,并將節點中的data值加入到JSON對象中。最后將JSON對象添加到JSON數組中。

最后使用json_dumps()函數將JSON數組轉換為JSON字符串,并輸出到控制臺。