标签:
第一种情况:前台传入字符串参数 后台返回json字符串、或是json数组
代码如下:
前台:
$.ajax({ url: "xxx/xxx.action", data: "id=xxx", cache: false, async: false, success: function(result) { A:接收后台返回的数组 var data = eval(result); if (typeof(data) != "undefined" && data.length > 0) { for(var i=0;i<data.length;i++) { data[i]["id"]; data[i]["name"]; } } B: 后台返回字符串、则直接接收 }, error: function(){ alert("table loading error..."); } });
后台:
PrintWriter out = ServletActionContext.getResponse().getWriter(); /* 后台返回json字符串*/
StringBuffer string = new StringBuffer();
string.append(""); out.print(string);
/* * 后台返回json数组 */
List<String> list = new ArrayList<String>();
JSONArray jArray = JSONArray.fromObject(list);
out.print(jArray); out.flush();
return null;
第二种情况:前台传入json数组作为参数与后台进行交互
前台:
function delCheckedData(){
var array = new Array();
$(":checkbox[name=‘chk‘][checked=true]").each(function(){
array.push({
id: $(this).val()
});
})
if (array.length > 0) {
var gridJSON = JSON.stringify(array, function(key, value){
return value;
});
$.ajax({
url: "/xxx/xxx.action",
cache: false,
data: "idListJSON=" + gridJSON,
async: false,
success: function(result){
var instData = eval(result);
//相应的处理
},
error: function(){
alert("Error...");
}
});
}
}
后台:
JSONArray instArray = JSONArray.fromObject("参数");
for (int i = 0; i < instArray.size(); i++)
{
JSONObject instJ = (JSONObject)instArray.get(i);
String sId = instJ.get("id").toString();
//得到Id做相应的操作
}标签:
原文地址:http://www.cnblogs.com/zknublx/p/5844064.html