java后端为前端提供接口,将数据以树形结构返回(工具类hutool.core.lang.tree)

文章介绍了如何使用Java后端配合Hutool库构建树形结构,特别是针对部门管理场景。通过查询所有数据,配置TreeNodeConfig,然后利用TreeUtil构建树形结构,最终返回给前端接口。代码示例中展示了具体的实现步骤和关键函数。

用于后端java的实用、简洁、通俗易懂的树形工具类使用笔记

设计需求是做一个类似于部门管理的树形结构,后端设计表写逻辑,为前端提供接口,将数据以树形结构返回

这里直接上代码,基本可以直接拿去用,只需要把父id和名称做对应的修改就完了。

步骤:

先把需要的数据全查出来,

再创建工具类并设置id、树结构标识ParentIdKey、名称,

最后调build方法把查出来的数据和工具类放进去就行了(其中父id命名为groupId

接口测试树结构效果:

具体代码:

import cn.hutool.core.lang.tree.Tree;
import cn.hutool.core.lang.tree.TreeNodeConfig;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.ReflectUtil;
public R<List<Tree<String>>> listAll() {
    List<Group> groupList = groupService.selectAll();//全查出所有可用数据
    TreeNodeConfig config = new TreeNodeConfig();
    config.setIdKey("id");
    config.setParentIdKey("groupId");//父id在库里命名为groupId
    config.setDeep(10);//最大递归深度  默认无限制
    config.setNameKey("name");
    List<Tree<String>> treeNodes = TreeUtil.build(groupList, "0", config, (group, tree) -> {
        tree.setId(group.getId());//唯一标识符  必填属性
        tree.setParentId(group.getGroupId());//父id  必填属性
        tree.setName(group.getName());
        tree.setWeight(group.getPosition());
        Field[] fields = ReflectUtil.getFieldsDirectly(group.getClass(), true);
        for (Field field : fields) {
            String fieldName = field.getName();
            Object fieldValue = ReflectUtil.getFieldValue(group, field);
            tree.putExtra(fieldName, fieldValue);
        }
    });
    log.info(JSONUtil.toJsonStr("tree数据:" + treeNodes));
    return R.ok(treeNodes);
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值