js獲取通過ajax返回的map型的JSONArray的方法

2022-05-17 14:41 更新
代碼如下:
for(var i in datares){ 
if (datares.hasOwnProperty(i)) { 
sel.append("<option value='"+datares[i].deptid+"'>"+datares[i].deptname+"</option>"); 
} 

} 

ajax請求返回map,并遍歷

$.ajax({
       type: "POST",
url: "<%=path%>/account/queryRolesAndGroups.action",
data: "enterpriseId="+eid,
success: function(msg){
var obj=eval("(" + msg + ")");
$.each(obj.groupList, function(i,item){      
alert(item.groupName); 
  })
}
})  
})

發(fā)送請求到后臺,然后后臺通過各種操作,得到相應數(shù)據(jù)

如果數(shù)據(jù)為 map,map中包含了多個list,

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

后臺這樣轉換,然后前臺轉換下:var obj=eval("(" + msg + ")");

就可以遍歷里面的數(shù)據(jù)了(注意: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的使用也要注意,當單個數(shù)據(jù)0,1來給后臺判斷時,pw.println會帶換行符,永遠不等于0,1.

response.setContentType("text/plain;charset=UTF-8");
     PrintWriter pw =response.getWriter();

這兩句對返回亂碼處理也要特別注意先后順序。     

PrintWriter pw =response.getWriter();在前的話,轉換也不起作用!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號