本文主要是介绍不需要递归将数据格式化 easyui combotree 何各种tree的格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
比如我们要得到[{id:1,name:'test1',
son:[{id:2,name:'test2',son[]}, id:3,name:'test3',son:[] ]}]
这样格式的数据,我们数据库是个菜单表,一般是用递归算法一层层去解析。
我的方案是
写一个菜单的pojo ------- AdminMenu 这个pojo里面有一个son的List<AdminMenu > 属性。
// 这里注意,这个list中 父菜单一定要在子菜单前面private String findMenuTreeJosn(List<AdminMenu> menuList){// 用于根据id查找对应父节点Map<Integer, AdminMenu> menuItemMap = new LinkedHashMap<>();AdminMenu fatherItem = null;// 遍历所有菜单,找到他们的父菜单对象,并且把自己挂到他的父菜单的son中for (AdminMenu menu : menuList){fatherItem = menuItemMap.get(menu.getFatherMenuId());menuItemMap.put(menu.getMenuId(), menu);// 如果找不到父部门 返回if (fatherItem == null){continue;}fatherItem.getSonMenu().add(menu);}Set<Integer> menuKeySet = menuItemMap.keySet();AdminMenu tempMenuItem = null;menuList = new ArrayList<>();
// 便利所有的菜单,找到一级菜单,将一级菜单对象添加到集合中,这个一级菜单下面的所有子菜单和孙子菜单都已经挂在他下面了,所以我们不管for(Integer menuId : menuKeySet){tempMenuItem = menuItemMap.get(menuId);// fatherid=0 代表为一级菜单if(tempMenuItem.getFatherMenuId() == 0){menuList.add(tempMenuItem);}}
// 将这个list转换为 json对象就ok了return JsonUtils.list2json(menuList);}
这篇关于不需要递归将数据格式化 easyui combotree 何各种tree的格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!