在使用 C 語(yǔ)言編寫(xiě)后臺(tái)服務(wù)時(shí),常常需要將 JSON 對(duì)象存放到 List 集合中,以便于快速地進(jìn)行數(shù)據(jù)存儲(chǔ)、查詢和處理。下面是一段 C 代碼示例,展示了如何實(shí)現(xiàn)將 JSON 對(duì)象存放到 List 集合中的過(guò)程。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> /* 定義 List 控件 */ struct ListItem { json_t *data; struct ListItem *prev; struct ListItem *next; }; typedef struct ListItem listItem; /* 定義 List 集合 */ struct List { listItem *front; listItem *back; int count; }; typedef struct List list; /* 將 JSON 對(duì)象存放到 List 集合中 */ void addToList(list *lst, json_t *data) { listItem *node = malloc(sizeof(listItem)); node->data = data; node->prev = lst->back; node->next = NULL; if (lst->back) { lst->back->next = node; } else { lst->front = node; } lst->back = node; lst->count++; } int main() { list myList; myList.front = NULL; myList.back = NULL; myList.count = 0; /* 創(chuàng)建 JSON 對(duì)象 */ json_t *user = json_object(); json_object_set_new(user, "id", json_integer(1)); json_object_set_new(user, "name", json_string("Alice")); json_object_set_new(user, "gender", json_string("female")); json_object_set_new(user, "age", json_integer(25)); /* 將 JSON 對(duì)象存放到 List 集合中 */ addToList(&myList, user); /* 輸出 List 集合中的第一個(gè) JSON 對(duì)象 */ json_t *firstUser = myList.front->data; printf("first user: %s\n", json_dumps(firstUser, JSON_ENCODE_ANY)); return 0; }
上面的代碼演示了如何定義 List 控件和 List 集合,并將 JSON 對(duì)象存放到 List 集合中。注意到在 addToList 函數(shù)中,我們通過(guò) malloc() 函數(shù)動(dòng)態(tài)地分配了內(nèi)存空間來(lái)存放 ListItem 節(jié)點(diǎn),并將 JSON 對(duì)象作為其中的數(shù)據(jù)。在實(shí)際使用過(guò)程中,我們可以通過(guò)遍歷 List 集合來(lái)訪問(wèn)其中的所有 JSON 對(duì)象,并對(duì)其進(jìn)行相應(yīng)的操作。