C list泛型是C語言中非常重要的數據結構,特別是在處理大規模數據集時。這里我們將介紹C list泛型如何轉換為JSON格式。
#include <stdio.h> #include <jansson.h> #include <clist.h> Clist *list; void example() { ... json_t *json = json_object(); ClistIterator *itr = clist_begin(list); while(itr != clist_end(list)) { char *key = clist_node_key(itr); void *val = clist_node_value(itr); json_t *jval; if( clist_is_int(itr)) { jval = json_integer(*((int*)val)); } else if( clist_is_string(itr)) { jval = json_string((char*)val); } json_object_set(json, key, jval); itr = clist_next(itr); } char *json_str = json_dumps(json, JSON_INDENT(4)); printf("%s\n", json_str); ... } int main() { list = clist_create(); clist_push_back(list, "name", "Michael"); clist_push_back(list, "age", &35); example(); clist_erase(list, "name"); clist_push_back(list, "skills", "C++"); example(); clist_destroy(list); return 0; }
上面的代碼演示了如何將C list泛型轉換為JSON格式。首先,我們在example函數中創建一個JSON對象,并使用C list迭代器遍歷C list獲得所有鍵和值。根據它們的類型,我們使用json_integer或json_string函數創建相應的JSON值,并將它們添加到JSON對象中。最后,我們使用json_dumps函數將JSON對象轉換為字符串,并將其打印到控制臺上。
該程序的輸出將類似于以下內容:
{ "name": "Michael", "age": 35 } { "age": 35, "skills": "C++" }
通過這樣的方法,我們可以方便地將C list泛型轉換為JSON格式,以便用于數據交換或存儲。在實際應用程序中,我們可以輕松地根據需要修改此代碼,并將其與其他程序集成。