C語言是一種面向過程的編程語言,常用于系統軟件等底層開發。在開發過程中,有時需要將數據以樹狀結構的形式展示出來,這時就需要生成對應的JSON數據。下面介紹一種生成樹狀JSON的方法。
#include <stdio.h> #include <stdlib.h> struct Tree { int val; struct Tree *left; struct Tree *right; }; struct Tree* createNode(int val) { struct Tree* newNode = (struct Tree*)malloc(sizeof(struct Tree)); newNode->val = val; newNode->left = NULL; newNode->right = NULL; return newNode; } void addNode(struct Tree* node, int val) { if (node->val >val) { if (node->left == NULL) { node->left = createNode(val); } else { addNode(node->left, val); } } else { if (node->right == NULL) { node->right = createNode(val); } else { addNode(node->right, val); } } } void printTree(struct Tree* node) { printf("{\"val\": %d,", node->val); if (node->left != NULL || node->right != NULL) { printf("\"children\": ["); if (node->left != NULL) { printTree(node->left); } if (node->right != NULL) { if (node->left != NULL) { printf(","); } printTree(node->right); } printf("]"); } printf("}"); } int main() { struct Tree *root = createNode(15); addNode(root, 8); addNode(root, 20); addNode(root, 6); addNode(root, 10); addNode(root, 17); addNode(root, 25); printTree(root); return 0; }
以上代碼中,我們首先定義了一個二叉樹節點結構,其中包含節點值以及左右子節點指針。接著分別定義了創建節點和添加節點的函數。最后實現了一個打印樹結構的函數,該函數利用遞歸算法打印出每個節點及其對應的子節點。
在main函數中,我們首先創建了一個根節點,然后不斷調用addNode函數往樹中添加元素,最終打印出整個樹結構。打印出來的JSON數據可以直接用于前端展示。
上一篇c 怎么接收json數據
下一篇dopost返回json