如何从mysql表创建树

我有一张这样的桌子:


id        title        parent_id

1         a            0

2         b            0

3         c            1

4         d            2

5         e            1

6         f            3

7         g            3

我需要制作一个 json 发送到前端。我不知道如何从我的表中制作这个 json。这是关于我的目标和代码的其他一些信息:节点类型:


type Node struct {

        Id       int64  `json:"id"'

        Title    string `json:"title"`

        ParentId int64  `json:"parent_id"`

        Children []Node `json:"children"`

}

我正在使用 sqlx 从数据库读取到切片


我需要这样的 json:


[

    {

    "id" : 1,

    "title" : "a",

    "parent_id" : 0,

    "children" : [ 

                    {

                    "id" : 3,

                    "title" : "c",

                    "parent_id" : 1,

                    "children" .....

                    } 

                 ]

    },    

    .

    .

    .

]

已经有一个类似于我的问题的问题,但不同之处在于我是从 mysql 表而不是控制台读取节点,而且我需要将树编组为 json


繁星coding
浏览 114回答 1
1回答

烙印99

var items = select * from tbl order by parent_id;Node.addChild = n=>this.children.add(n);var root= new Node({Id:0, Parent:null, Title:'Root',Children:[]);add(root, items, 0,0)function add(tree,items, depth){    if(depth>100){         throw 'something';     }    var itemsOnThisLevel = items.where(item.parent_id==tree.id)         foreach(var item in itemsOnThisLevel){        var n = new Node(item);        tree.add(n);        add(n, items, depth+1);    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go