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

c json數據轉化list結合

林雅南2年前8瀏覽0評論

JSON格式的數據在Web開發中使用非常廣泛,它是一種輕量級的數據格式,易于解析和生成,不僅適用于前后端數據傳輸,也可以用于日志、配置文件等多種場景。在C語言中,我們可以使用開源的CJSON庫對JSON數據進行解析和生成。但是,在實際應用中,我們常常需要將JSON數據轉化為某種數據結構,例如List。

#include "cJSON.h"
#include#includetypedef struct ListNode {
int val;
struct ListNode *next;
}ListNode;
ListNode* createNode(int val) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->val = val;
node->next = NULL;
return node;
}
ListNode* jsonToList(char* jsonStr) {
cJSON* root = cJSON_Parse(jsonStr);
if (!root) {
printf("JSON格式錯誤:%s\n", cJSON_GetErrorPtr());
return NULL;
}
int size = cJSON_GetArraySize(root);
ListNode* head = NULL, *tail = NULL;
for (int i = 0; i< size; i++) {
cJSON* item = cJSON_GetArrayItem(root, i);
if (!item) {
printf("JSON格式錯誤:%s\n", cJSON_GetErrorPtr());
return NULL;
}
int val = cJSON_GetNumberValue(item);
ListNode* node = createNode(val);
if (!head) {
head = node;
tail = node;
}
else {
tail->next = node;
tail = node;
}
}
cJSON_Delete(root);
return head;
}
void printList(ListNode* head) {
printf("[");
ListNode* p = head;
while (p) {
printf("%d", p->val);
if (p->next) printf(", ");
p = p->next;
}
printf("]\n");
}
int main() {
char *jsonStr = "[1, 2, 3, 4, 5]";
ListNode* head = jsonToList(jsonStr);
printList(head);
return 0;
}

在上面的代碼中,我們使用了CJSON庫解析了JSON字符串,然后循環遍歷JSON數組,將每個元素轉化為ListNode節點,并將其鏈接成List。最后,我們打印出List的結果。這個例子展示了如何將JSON數據轉化為List,但是同樣的方法也可以應用到其他數據結構中。