最近做毕业设计时要用到前后端分离,利用json传递数据,而多级菜单数据需要以json形式返回给前端页面,因此记录一下相关的方法 ,废话不多说,直接上代码。
package cn.xyes.entity;
import java.util.ArrayList; import java.util.List;
/** * @author Tireless */ public class MenuTree { private List
//建立树形结构 public List
//递归,建立子树形结构 private Menu buildChilTree(Menu pNode){ List
//获取根节点 private List
import java.util.List;
/** * @author Tireless */ public class Menu { //菜单id private String id; //菜单名称 private String name; //父菜单id private String parent_id; private List
public Menu(String id, String name, String parent_id) { this.id = id; this.name = name; this.parent_id = parent_id; }
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getParent_id() { return parent_id; }
public void setParent_id(String parent_id) { this.parent_id = parent_id; }
public List
public void setChildren(List
@Override public String toString() { return "Menu{" + "id='" + id + ''' + ", name='" + name + ''' + ", parent_id='" + parent_id + ''' + ", children=" + children + '}'; } } 测试代码 -
/** *json返回数据 **/ @RequestMapping("/demo") @ResponseBody public JsonResult jsonResult(){ List
// 先找到所有的一级菜单 MenuTree menuTree =new MenuTree(menu); menu=menuTree.builTree(); return new JsonResult(menu,StatusCode.SUCCESS); } }
[ { "id": "1", "name": "一级菜单1", "parent_id": "0", "children": [ { "id": "3", "name": "二级菜单1", "parent_id": "1", "children": [ { "id": "5", "name": "三级菜单1", "parent_id": "3", "children": [] } ] }, { "id": "4", "name": "二级菜单2", "parent_id": "1", "children": [] } ] }, { "id": "2", "name": "一级菜单2", "parent_id": "0", "children": [] } ] 这里就不再贴效果图了,懂得都懂。