C語言中的list數據結構是非常常用的,而JSON是一種輕量級的數據交換格式,常用于web應用程序。在實際開發中,我們需要將C語言中的list轉換成JSON對象,以方便在不同的平臺和系統之間交換數據。
#include <stdio.h> #include <jansson.h> #include <glib.h> int main(int argc, char **argv) { GList *list = NULL; list = g_list_append(list, "apple"); list = g_list_append(list, "orange"); list = g_list_append(list, "banana"); json_t *json_array = json_array(); GList *it; for (it = list; it; it = it->next) { json_array_append_new(json_array, json_string(it->data)); } char *json_text = json_dumps(json_array, JSON_INDENT(2)); printf("%s\n", json_text); g_list_free(list); json_decref(json_array); free(json_text); return 0; }
在上面的代碼中,我們使用了GLib的list數據結構,它提供了非常方便的API供我們使用。我們首先定義一個空的list,然后使用g_list_append函數將apple、orange和banana三個字符串加入list中。
接下來,我們使用jansson庫中的json_array函數創建了一個空的JSON數組對象。然后,我們遍歷list中的每一個元素,并將它們轉換成JSON字符串,并使用json_array_append_new函數將這些JSON字符串添加到JSON數組中。
最后,我們使用json_dumps函數將JSON數組轉換成文本格式,并打印輸出。注意,json_dumps函數返回的文本需要使用free函數釋放。
這樣,我們就將C語言中的list數據結構成功轉換成了JSON對象,可以愉快地在不同平臺和系統之間交換數據了。