java实现类似ztree的json格式查询
2018-01-24 19:45
393 查看
在web系统中,尤其是一些管理系统,比如权限分配,会有查询菜单树形结构的需求。
一般java后台需要返回json格式的数据,比如ztree
对应后台表结构可以设计如下
java代码
对于调用处,只要查询出对应的机构数据集合即可进行组合成树结构
一般java后台需要返回json格式的数据,比如ztree
var zTreeNodes = [ {"id":1, "name":"test1", "nodes":[ {"id":11, "name":"test11", "nodes":[ {"id":111, "name":"test111"} ]}, {"id":12, "name":"test12"} ]}, ...... ];
对应后台表结构可以设计如下
CREATE TABLE `organ` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(64) DEFAULT NULL COMMENT '名称', `type` tinyint(4) DEFAULT NULL COMMENT '节点类型', `priority` tinyint(4) DEFAULT '1' COMMENT '排序', `parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父ID' PRIMARY KEY (`id`) )
java代码
/** * 组织树结构 * @param list * @param <T> * @return */ public static <T extends BaseTreeNodeVO> T assembleTree(List<T> list){ if(list.isEmpty()){ return null; } //取出根节点 T root = list.get(0); //临时存放所有节点 Map<Long, T> nodeMap = new HashMap<>(); list.stream().forEach(o -> nodeMap.put(o.getId(), o)); //找出节点关系 list.subList(1, list.size()).stream().forEach(m -> nodeMap.get(m.getParentId()).appendChild(m)); nodeMap.clear(); return root; }
对于调用处,只要查询出对应的机构数据集合即可进行组合成树结构
public class BaseTreeNodeVO { /**主键ID*/ protected Long id; /**父ID*/ protected Long parentId; /**下级节点*/ protected List<BaseTreeNodeVO> children = new ArrayList<>(); public void appendChild(BaseTreeNodeVO organTree){ this.children.add(organTree); } }
相关文章推荐
- Java+oracle树查询实现easyui中tree使用的json
- java树的一种返回json格式的实现方法
- Java+oracle树查询实现easyui中tree使用的json
- GSON实现Java对象与JSON格式对象相互转换的完全教程
- Json-lib, 实现Java对象与JSON数据格式的互转
- java读写json测试实现手机地归属地的查询
- java 实现json格式字符串定义
- java 后台实现ajax post跨域请求传递json格式数据获取json数据问题
- java实现Json格式美化【工具包系列】
- java实现HTTP的post请求 json格式中文乱码问题
- [JsonSchema] 关于接口测试 Json 格式比对核心算法实现 (Java 版)
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- CCFJson查询之Java实现代码
- java实现HTTP的post请求 key-value格式与json格式的区别
- xml和JSON格式相互转换的Java实现
- Json-lib, 实现Java对象与JSON数据格式的互转
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- xml和JSON格式相互转换的Java实现
- Struts2+ajax+jackson实现查询数据以json格式数据回显
- Java实现将ResultSet结果转成json格式