思维导图:
一.转换对应的数据式
1.转换成对象
方式一:实体类对象转换成json串->json对象
public class Menu {
private String serialNo;
private String menuid;
private String menuname;
private String menuURL;
private String parentid;
}
json串->json对象
package com.pjl.demo;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonDemo1 {
public static void main(String[] args) throws Exception {
//如何造出数据 1,new一个JsonObject1对象 2,导入jar包
JsonObject1 obj1=new JsonObject1("11", "学生管理", "closed");
ObjectMapper om=new ObjectMapper();
System.out.println(om.writeValueAsString(obj1));
}
方式二:Map集合转换成json串->json对象
Map<String, Object> map=new HashMap<String, Object>();
map.put("id","11");
map.put("text","学生管理");
map.put("state", "closed");
System.out.println(om.writeValueAsString(map));
测试结果:
2.转换成数组
方式一:实体类集合对象转换成json串->json数组
package com.pjl.demo;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonDemo2 {
// 方式一:获取json数组 实体类对象转换成json ——> json数组
public static void main(String[] args) throws Exception {
JsonObject1 obj1 = new JsonObject1("14", "about.html", "null");
JsonObject1 obj2 = new JsonObject1("15", "welcome.html", "null");
List<JsonObject1> list = new ArrayList<>();
list.add(obj1);
list.add(obj2);
ObjectMapper om = new ObjectMapper();
System.out.println(om.writeValueAsString(list));
}
方式二:Map集合对象转换成json串->json数组
// 方式二:map集合转换成json数组
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", "14");
map.put("text", "about.html");
map.put("state", null);
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("id", "15");
map2.put("text", "welcome.html");
map2.put("state", null);
List<Map<String, Object>> listMap = new ArrayList<>();
listMap.add(map);
listMap.add(map2);
System.out.println(om.writeValueAsString(listMap));
}
测试结果:
二.树形组件数据结构的生成
第一步:导jar包
第二步:创建实体类
package com.zking.entity;
public class Menu {
private String serialNo;
private String menuid;
private String menuname;
private String menuURL;
private String parentid;
public String getSerialNo() {
return serialNo;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
public String getMenuid() {
return menuid;
}
public void setMenuid(String menuid) {
this.menuid = menuid;
}
public String getMenuname() {
return menuname;
}
public void setMenuname(String menuname) {
this.menuname = menuname;
}
public String getMenuURL() {
return menuURL;
}
public void setMenuURL(String menuURL) {
this.menuURL = menuURL;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
@Override
public String toString() {
return "Menu [serialNo=" + serialNo + ", menuid=" + menuid + ", menuname=" + menuname + ", menuURL=" + menuURL
+ ", parentid=" + parentid + "]";
}
public Menu(String serialNo, String menuid, String menuname, String menuURL, String parentid) {
super();
this.serialNo = serialNo;
this.menuid = menuid;
this.menuname = menuname;
this.menuURL = menuURL;
this.parentid = parentid;
}
public Menu() {
super();
// TODO Auto-generated constructor stub
}
}
第三步:dao包(MenuDao)继承BaseDao
package com.zking.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zking.util.BaseDao;
import com.zking.util.BuildTree;
import com.zking.util.PageBean;
import com.zking.util.TreeVo;
import com.zking.entity.Menu;
public class MenuDao extends BaseDao<Menu> {
public List<Menu> list(Menu menu, PageBean pageBean) throws Exception {
return super.executeQuery("select * from t_easyui_menu", Menu.class, pageBean);
}
public List<TreeVo<Menu>> tree(Menu menu, PageBean pageBean) throws Exception{
//拿到平级数据,没有父子层关系的数据
List<Menu> list = this.list(menu, pageBean);
//将List<Menu>转成list<TreeVo<Menu>>对象
List<TreeVo<Menu>> listVos=new ArrayList<TreeVo<Menu>>();
for (Menu m : list) {
TreeVo<Menu> vo=new TreeVo<>();
vo.setId(m.getMenuid());
vo.setText(m.getMenuname());
vo.setParentId(m.getParentid());
Map<String, Object> attributes=new HashMap<String, Object>();
//self是个键名 随便取名字
attributes.put("self", m);
vo.setAttributes(attributes);
listVos.add(vo);
}
//构建父子层关系,希望拿到菜单管理下的所有子节点数据
return BuildTree.buildList(listVos, "000");
}
public static void main(String[] args) throws Exception {
MenuDao menuDao=new MenuDao();
//List<Menu> list=menuDao.list(null, null);
List<TreeVo<Menu>> tree = menuDao.tree(null, null);
ObjectMapper om=new ObjectMapper();
//System.out.println(om.writeValueAsString(list));
System.out.println(om.writeValueAsString(tree));
}
}
第四步:TreeVo
package com.zking.util;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class TreeVo<T> {
/**
* 节点ID
*/
private String id;
/**
* 显示节点文本
*/
private String text;
/**
*