如果是zTree则后台只需要传一个数组形式的JSON就可以搞定,{name: '父节点1', children: [ {name: '子节点1'}, {name: '子节点2'} ]}这种写法找父子关系不得找死。
下面这种JSON最方便
var nodes = [
{id:1, pId:0, name: "父节点1"},
{id:11, pId:1, name: "子节点1"},
{id:12, pId:1, name: "子节点2"}
]
后台拼接JSON串代码也很简单啊,[id=1 pId=-1 name=名称1]为一条数据放入数组或List中,[id=101 pId=1 name=名称2]为一条数据放入集合,依次类推就是一个数据集了,然后for循环拼装JSON即可:
StringBuilder sb = new StringBuilder()
sb.append("[")
for(...){
sb.append("{\"id\":").append(id).append(",\"pId\":").append(pId).append(",\"name\":\"").append(name).append("\"},")
}
//注意去掉最后一个逗号
......
sb.append("]")
//接受一个Listnet.sf.json.JSONArray.fromObject(dataList)
//接受一个bean
net.sf.json.JSONObject.fromObject(Object object)
利用json-lib,封装好对象的层级关系后,直接可以用上面两个方法来转换json格式数据。
//是类似这种吗//控制层使用JSONArray jsonObject=JSONArray.fromObject()转换
Map<String,Object> map = new HashMap<String, Object>()
map.put("id","1")
map.put("text","实验外国语学校")
List<Map<String,Object>> fatherList=new ArrayList<Map<String,Object>>()
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>()
for(Bean bean:list){
if("1".equals(list.getParent_level())){
Map<String,Object> map2=new HashMap<String, Object>()
map2.put("id",list.getId())
map2.put("text",list.getName())
list.add(map2)
}
}
map.put("children",list)