在一次项目开发过程中,需要将获取的数据转换为Tree结构,记录一下。
1:服务端从数据库中需要查询出满足条件的带有层级关系的数据集合,如:
[{"id":"1", "name":"一级", "parentId": "0"},{"id":"2", "name":"一级下二级", "parentId": "1"}]
2:引入Tree的包
import cn.teksun.platform.commons.common.model.Tree;
import cn.teksun.platform.commons.common.util.TekTreeBuildUtils;
3:服务端代码逻辑
// 数据集合
List<IndexSystem> dataList = indexSystemFacade.listAlls(categoryCode);
// 定义 Tree 数据集合
List<Tree<IndexSystem>> trees = new ArrayList<>();
for (IndexSystem obj : dataList) {
Tree<IndexSystem> tree = new Tree<>();
// id
tree.setId(obj.getIndexCode());
// 父id
tree.setParentId(obj.getParentIndexCode());
// 显示内容
tree.setText(obj.getIndexName());
// 添加到Tree中
trees.add(tree);
}
// 默认顶级菜单为0,根据数据库实际情况调整
return TekTreeBuildUtils.buildList(trees, "0");