C 庫的 JSON 序列化功能在處理鏈表數(shù)據(jù)時非常有用。鏈表是典型的“一堆雜亂的值”,它們沒有固定的大小和固定的數(shù)量。使用 C 庫中的 JSON 序列化功能,可以將鏈表中的元素序列化為 JSON 數(shù)組。
// 定義鏈表節(jié)點結(jié)構(gòu)體 typedef struct node { int data; struct node *next; } Node; // 創(chuàng)建節(jié)點函數(shù) Node* createNode(int data) { Node *newNode = (Node*) malloc(sizeof(Node)); newNode->data = data; newNode->next = NULL; return newNode; } // 序列化鏈表函數(shù) char* serializeList(Node *head) { cJSON *root; cJSON *array = cJSON_CreateArray(); Node *current = head; while (current != NULL) { cJSON *item = cJSON_CreateObject(); cJSON_AddNumberToObject(item, "data", current->data); cJSON_AddItemToArray(array, item); current = current->next; } root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "list", array); char *jsonString = cJSON_Print(root); return jsonString; } int main() { Node *head = createNode(1); head->next = createNode(2); head->next->next = createNode(3); char *jsonString = serializeList(head); printf("List JSON: %s\n", jsonString); return 0; }
在上面的代碼中,我們定義了一個鏈表節(jié)點結(jié)構(gòu)體和一個創(chuàng)建節(jié)點函數(shù)。然后定義了一個序列化鏈表函數(shù),在其中使用 C 庫中的 cJSON 函數(shù)將鏈表元素序列化為 JSON 數(shù)組。
在 main 函數(shù)中,我們創(chuàng)建了一個包含三個元素的鏈表,然后調(diào)用序列化鏈表函數(shù)。最后打印序列化結(jié)果。
上一篇c json 幫助類
下一篇mysql升序后取第一