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

c json數(shù)組轉(zhuǎn)list

阮建安2年前8瀏覽0評論

JSON是一種輕量級的數(shù)據(jù)交換格式,由于其簡單易懂、易于擴展等特點,使其在現(xiàn)代應(yīng)用程序中得到了廣泛應(yīng)用。C語言是一種高效、穩(wěn)定的編程語言,經(jīng)常用于底層開發(fā)以及嵌入式系統(tǒng)中。在C語言開發(fā)中,我們常常需要將JSON數(shù)據(jù)中的數(shù)組轉(zhuǎn)換為鏈表,以便對其進行操作。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct node {
int value;
struct node *next;
} Node;
int main() {
char *json_str = "[1, 2, 3, 4, 5]";
json_t *root;
json_error_t error;
Node *head, *p, *q;
int count = 0;
// 解析JSON字符串
root = json_loads(json_str, 0, &error);
if(!root) {
printf("JSON解析失敗,錯誤信息:%s\n", error.text);
return -1;
}
// 遍歷數(shù)組元素,將其轉(zhuǎn)換為鏈表
head = (Node*) malloc(sizeof(Node));
head->next = NULL;
p = head;
for(int i = 0; i< json_array_size(root); i++) {
p->next = (Node*) malloc(sizeof(Node));
p = p->next;
p->value = json_integer_value(json_array_get(root, i));
p->next = NULL;
count++;
}
// 打印鏈表元素
q = head->next;
while(q) {
printf("%d ", q->value);
q = q->next;
}
printf("\n鏈表長度:%d\n", count);
// 釋放鏈表內(nèi)存
p = head->next;
while(p) {
q = p->next;
free(p);
p = q;
}
free(head);
// 釋放JSON對象內(nèi)存
json_decref(root);
return 0;
}

上述代碼使用jansson庫解析JSON字符串,將其中的數(shù)組元素轉(zhuǎn)換為鏈表。在代碼中,我們遍歷數(shù)組中的元素,并將其插入到鏈表中。最后,我們輸出鏈表元素和長度,并釋放鏈表和JSON對象的內(nèi)存。