Hutool工具-TreeUtil封装树形结构数据,你用过了吗

本文共 1,147 字,预计阅读时间 4 分钟

在开发过程中,必定会遇到树形结构的数据,一般都是后端直接从库里查询出来然后自定义方法去封装成树形树形返回给前端。其实Hutool工具类也提供了这个方法,这种方式使用起来也很简单。

复制代码
        //1.配置树节点信息,指定key,可直接使用默认的key
        TreeNodeConfig config = new TreeNodeConfig();
        //2.查询数据
        List<AreaCode> areaCodes = areaCodeDao.selectAll();
        //3.转为树结构,其中rootId参数代表根节点的父级id值
        List<Tree<String>> treeList = TreeUtil.build(areaCodes, "0", config, ((object, treeNode) -> {
            //对key进行映射赋值
            treeNode.putExtra("id", object.getId());
            treeNode.putExtra("parentId", object.getPid());
            treeNode.putExtra("name", object.getName());
            treeNode.putExtra("deep", object.getAreaLevel());
        }));
复制代码

在封装树形结构时,需要将数据与树结构对象进行映射,上述是采用的默认的key,其源码如下:

当然也可以自定义key,那么在进行key映射时需要保持一致

复制代码
        TreeNodeConfig config = new TreeNodeConfig();
        //id
        config.setIdKey("id");
        //父id
        config.setParentIdKey("pid");
        //名称
        config.setNameKey("name");
        //最大递归深度
        config.setDeep(3);
        //孩子节点
        config.setChildrenKey("childrenList");
        //排序字段
        config.setWeightKey("sort");
复制代码

查询的数据如下图,是树形结构。

posted @   钟小嘿  阅读(5676)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示