话说从后台得到了一个hashmap集合,在前台页面用js已经接收到了map="${map}"数据格式如下
{一级菜单1={二级菜单1.1=[三级菜单1.1.1, 三级菜单1.1.2]}, 一级菜单2={二级菜单2.1=[三级菜单2.1.1, 三级菜单2.1.2], 二级菜单2.2=[三级菜单2.2.1, 三级菜单2.2.2]}, 一级菜单3={二级菜单3.1=[,]}}
输出格式为
一级菜单1
二级菜单1
三级菜单1.1.1
三级菜单1.1.2
一级菜单2
..........
当三级菜单中值为空时,就不显示
你这种数据js不支持,只能正则分析
服务器端转为json字符串格式,客户端JSON.parse转为对象才好遍历
Gson gson = new Gson(); 改一下,打错了
用 for(var name in map){
var value =map[name]
}
遍历就可以
楼上说的对,用遍历就可以了
使用递归进行遍历啊,这样不管几层都可以拿到数据
导入Gson jar包,将容器(集合)转化成json发送给页面
后端代码:
Gson json = new Gson();
String jsonstr = gson.toJson(将你的集合写在这);//这样你完全可以用list等你较为熟悉的集合
response.getWrite().print(jsonstr);
js部分: var varjson = JSON.parse(jsonstr); 然后遍历集合varjson
拿list为例
for(var i = 0;i<varjson.length;i++){
...varjson[i] //拿到了每一个集合中的值
}