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

c json轉(zhuǎn)化list%3c%3e

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

C JSON轉(zhuǎn)化List<>是一個常見的需求,特別是在使用C語言進(jìn)行后端開發(fā)時。List<>可以像數(shù)組一樣存儲多個數(shù)據(jù),并且支持動態(tài)擴(kuò)容和縮小,非常實(shí)用。在C語言中,我們可以使用第三方庫來實(shí)現(xiàn)JSON轉(zhuǎn)化List<>的功能。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <json-c/json.h>
typedef struct json_object* JsonObject;
typedef struct _Node {
int val;
struct _Node* Next;
} ListNode;
typedef struct _List {
ListNode* Head;
ListNode* Tail;
} List;
void InitList(List* list) {
list->Head = NULL;
list->Tail = NULL;
}
void FreeList(List* list) {
ListNode* cur = list->Head;
while (cur != NULL) {
ListNode* temp = cur;
cur = cur->Next;
free(temp);
}
list->Head = NULL;
list->Tail = NULL;
}
void PushBack(List* list, int val) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->val = val;
node->Next = NULL;
if (list->Head == NULL) {
list->Head = node;
list->Tail = node;
} else {
list->Tail->Next = node;
list->Tail = node;
}   
}
List JsonToList(JsonObject arr) {
List list;
InitList(&list);
int len = json_object_array_length(arr);
for (int i = 0; i < len; i++) {
JsonObject obj = json_object_array_get_idx(arr, i);
int val = json_object_get_int(obj);
PushBack(&list, val);
}
return list;
}
int main() {
const char* jsonStr = "{ \"list\": [1, 2, 3, 4, 5] }";
JsonObject json = json_tokener_parse(jsonStr);
JsonObject arr = json_object_object_get(json, "list");
List list = JsonToList(arr);
ListNode* cur = list.Head;
while (cur != NULL) {
printf("%d ", cur->val);
cur = cur->Next;
}
FreeList(&list);
return 0;
}

上面是通過第三方庫“json-c”實(shí)現(xiàn)的將JSON轉(zhuǎn)化成List<>的示例代碼。代碼中定義了一個ListNode和List結(jié)構(gòu)體來實(shí)現(xiàn)鏈表,同時使用了json-c庫中的API來解析JSON字符串和遍歷JSON數(shù)組。
最后,我們可以通過遍歷List<>來輸出其中的元素。