Cjson是一種輕量級的JSON庫,可以用于解析、生成JSON格式的數據。在處理JSON數據時,有時需要將數據轉換為樹形結構的JSON。本文將介紹如何使用Cjson實現JSON數據的轉換。
#include <stdio.h> #include <stdlib.h> #include <cjson/cJSON.h> // 將Cjson數組轉換為樹形結構的JSON cJSON* cjson_to_tree(cJSON* array) { cJSON* tree = cJSON_CreateObject(); cJSON* root = cJSON_CreateArray(); cJSON_AddItemToObject(tree, "root", root); // 遍歷數組元素 int i, array_size = cJSON_GetArraySize(array); for (i = 0; i < array_size; i++) { cJSON* element = cJSON_GetArrayItem(array, i); cJSON_AddItemToArray(root, element); } return tree; } int main() { char* json_str = "[{\"name\":\"A\",\"children\":[{\"name\":\"A1\",\"children\":[]},{\"name\":\"A2\",\"children\":[]}]},{\"name\":\"B\",\"children\":[]}]\n"; cJSON* array = cJSON_Parse(json_str); cJSON* tree = cjson_to_tree(array); char* tree_str = cJSON_Print(tree); printf("%s", tree_str); cJSON_Delete(array); cJSON_Delete(tree); free(tree_str); return 0; }
上述代碼演示了如何將Cjson數組轉換為樹形結構的JSON。首先將根節點創建為一個對象,然后將數組元素添加到根節點下的一個數組中,最后返回整個樹結構。轉換后的樹形結構JSON示例:
{ "root": [ { "name": "A", "children": [ { "name": "A1", "children": [] }, { "name": "A2", "children": [] } ] }, { "name": "B", "children": [] } ] }
通過上述代碼和示例,可以快速地將Cjson數組轉換為樹形結構的JSON,便于在前后端之間傳遞和處理。