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

c 讀取json數組為list

錢斌斌2年前10瀏覽0評論

在使用c語言開發(fā)中,有時需要讀取json數組,并將其轉換成list。下面我們將詳細介紹如何實現。

#include <stdio.h>
#include <jansson.h>
#include <stdbool.h>
#include <malloc.h>
typedef struct List {
int val;
struct List *next;
} List;
List* append(List *head, int val)
{
List *node = (List*)malloc(sizeof(List));
node->val = val;
node->next = NULL;
if (head == NULL) {
head = node;
} else {
List *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
return head;
}
List* json_to_list(json_t *json_arr)
{
List *head = NULL;
size_t size = json_array_size(json_arr);
for (size_t i = 0; i< size; i++) {
json_t *json_val = json_array_get(json_arr, i);
int val = json_integer_value(json_val);
head = append(head, val);
}
return head;
}
int main()
{
char *json_str = "[1,2,3,4,5,6]";
json_t *json_root;
json_error_t error;
json_root = json_loads(json_str, 0, &error);
if (json_root != NULL && json_is_array(json_root)) {
List *list = json_to_list(json_root);
printf("list: ");
List *p = list;
while (p != NULL) {
printf("%d ", p->val);
p = p->next;
}
printf("\n");
} else {
printf("%d %s\n", error.line, error.text);
}
return 0;
}

以上代碼通過解析json字符串,將其中的數組元素逐一添加到list中,并輸出結果。