Hutool中树结构工具-TreeUtil的使用
代码实现
/**
* 返回树形结构
* @return java.util.List<cn.hutool.core.lang.tree.Tree<java.lang.String>>
* @author lichennan
* @since 2022/3/21
*/
@Override
public List<Tree<String>> getTreeList() {
// 构建node列表
List<TreeNode<String>> nodeList = CollUtil.newArrayList();
// 从数据库中取出数据
List<Category> list = baseMapper.selectList(null);
//循环遍历list并将数据放入TreeNode中
list.forEach((item)-> {
// 自定义扩展两个字段
Map<String, Object> map = new HashMap<>(16);
map.put("content",item.getContent());
map.put("icon",item.getIcon());
// 组装数据
nodeList.add(
new TreeNode<>(item.getId(), item.getParentId(), item.getTitle(), item.getOrderNumber())
// 扩展的字段
.setExtra(map));
});
// 0表示最顶层的id是0
return TreeUtil.build(nodeList,"0");
}
树形数据
{
"id": "1505872492437209089",
"parentId": "0",
"weight": 0,
"name": "活动",
"icon": "el-icon-collection\r\n",
"content": "轮滑社的赛事和日常活动",
"children": [
{
"id": "1505872789981134849",
"parentId": "1505872492437209089",
"weight": 0,
"name": "比赛",
"icon": "el-icon-collection\r\n",
"content": "轮滑社各类赛事"
},
{
"id": "1505872919845175297",
"parentId": "1505872492437209089",
"weight": 0,
"name": "日常活动",
"icon": "el-icon-collection\r\n",
"content": "轮滑社日常活动"
}
]
}