详情参考CSDN链接: https://www.cnblogs.com/lidar/p/12972792.html
public class Menu {
private String id;
private String name;
private String parentId;
private String url;
private String icon;
private int order;
private List<Menu> childMenus;
}
----------------------------------------------------------------------
public Map<String,Object> testQueryMenuList() {
List<Menu> rootMenu = menuDao.queryMenuList(null);
for (Menu menu : rootMenu) {
System.out.println(menu);
}
List<Menu> menuList = new ArrayList<Menu>();
for (int i = 0; i < rootMenu.size(); i++) {
if (StringUtils.isBlank(rootMenu.get(i).getParentId())) {
menuList.add(rootMenu.get(i));
}
}
for (Menu menu : menuList) {
menu.setChildMenus(getChild(menu.getId(), rootMenu));
}
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("menu", menuList);
return jsonMap;
}
private List<Menu> getChild(String id, List<Menu> rootMenu) {
List<Menu> childList = new ArrayList<>();
for (Menu menu : rootMenu) {
if (StringUtils.isNotBlank(menu.getParentId())) {
if (menu.getParentId().equals(id)) {
childList.add(menu);
}
}
}
for (Menu menu : childList) {
if (StringUtils.isBlank(menu.getUrl())) {
menu.setChildMenus(getChild(menu.getId(), rootMenu));
}
}
if (childList.size() == 0) {
return null;
}
return childList;
}
//依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.8</version>
</dependency>