ajax拿到map里面的对象,js获取通过ajax返回的map型的JSONArray的方法

这篇博客探讨了前端与后台的数据交互,特别是使用Ajax进行POST请求获取Map数据的过程。前端通过eval转换JSON对象并遍历数据,对于Map中包含多个List的情况进行了详细说明。同时,提到了后台使用PrintWriter打印数据时的注意事项,包括换行符和返回内容的编码问题,强调了正确设置响应头的重要性。
摘要由CSDN通过智能技术生成

代码如下:for(var i in datares){

if (datares.hasOwnProperty(i)) {

sel.append(""+datares[i].deptname+"");

}

}

ajax请求返回map,并遍历$.ajax({

type: "POST",

url: "/account/queryRolesAndGroups.action",

data: "enterpriseId="+eid,

success: function(msg){

var obj=eval("(" + msg + ")");

$.each(obj.groupList, function(i,item){

alert(item.groupName);

})

}

})

})

发送请求到后台,然后后台通过各种操作,得到相应数据

如果数据为 map,map中包含了多个list,

pw.print(net.sf.json.JSONObject.fromObject(returnMap.get("map")).toString());

后台这样转换,然后前台转换下:var obj=eval("(" + msg + ")");

就可以遍历里面的数据了(注意:net.sf.json.JSONArray.fromObject(returnMap.get("list")).toString())这样是转换单个集合时适用,然后前台直接遍历即可,不需要强转success: function(msg){

alert(msg.length);

$.each(msg, function(i,item){

alert(item.name);

})

}

JSONArray转包含多个list的map时适用。

还有后台pw.print和pw.println的使用也要注意,当单个数据0,1来给后台判断时,pw.println会带换行符,永远不等于0,1.response.setContentType("text/plain;charset=UTF-8");

PrintWriter pw =response.getWriter();

这两句对返回乱码处理也要特别注意先后顺序。

PrintWriter pw =response.getWriter();在前的话,转换也不起作用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值