java 多层嵌套问题!!

数据库查询出的数据

将数据库查出数据拼装成以下格式的json:
{"models":[
{"modelname":"首页","modelurl":"/home","modelid":371,"fatherid":0,"nextModel":[],
"permissions":[
{"permissionid": 47,"permissionname": "首页","permissionclassic": "菜单"},
{ "permissionid": 49,"permissionname": "个人中心","permissionclassic": "菜单"}
]},
{"modelname":"首页","modelurl":"/home","modelid":371,"fatherid":0,
"nextModel":[{"modelname":"首页","modelurl":"/home","modelid":371,"fatherid":371},
{"modelname":"首页","modelurl":"/home","modelid":371,"fatherid":371,"nextModel":[],
"permissions":[
{"permissionid": 47,"permissionname": "首页","permissionclassic": "菜单"},
{"permissionid": 47,"permissionname": "首页","permissionclassic": "菜单"}
]}],"permissions":[]
}
]}

头都绕晕了

如果是单纯Java代码取数据,需要递归。如果是要前台展示,一般都有现成前台框架,你只需要查询子父级所有消息就行,然后对应绑定子父id,就可以自动绑定再树里。无需递归

没想到你三年前也问过同样的问题,我现在也是被绕来绕去

就是要给其他服务返这种格式的,所以需要在后端完成!递归怎么实现出?我被绕进去了^_^

在java中,查询某张表的所有数据并分页,将分页信息和数据同时传到页面,可以将数据拼接成json格式

String jsonStr = JsonUtils.toJson(list);//将对象转成JSON
StringBuilder sb = new StringBuilder();
sb.append("{");
sb.append("\"content\":").append(jsonStr);
sb.append(",\"totalElements\":").append(totalCount);
sb.append(",\"last\":").append(true);
sb.append(",\"totalPages\":").append(totalPages);
sb.append(",\"size\":").append(size);
sb.append(",\"number\":").append(list.size());
sb.append(",\"numberOfElements\":").append(list.size());
sb.append(",\"first\":").append(true);
sb.append(",\"currentPage\":").append(currentPage);
sb.append("}");
jsonStr = sb.toString();
在js中可以使用var obj = eval("("+data+")"); 或者var obj = JSON.parse(data);两种方法解析

建议使用easyui的tree列表,可以选择同步或者是异步,数据量小的话,可以选择同步。你上边这种格式就是是同步,对应的字段名绑定到easyui中可以直接显示出来

把他们查询到一个对象里面,然后直接转json不行吗