Ajax 传包含集合的JSON
Posted Season
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax 传包含集合的JSON相关的知识,希望对你有一定的参考价值。
通过ajax给后台传json对象,当json中含对象集合时,如
$.ajax({
url : ,
type : "POST",
dataType : "json",
data: {
‘year; : ;2006‘,
‘list‘ : [
{‘day‘: ‘01‘, ‘type‘ : ‘A‘},
{‘day‘: ‘02‘, ‘type‘ : ‘A‘},
]
},
});
此种方式在服务器端接收不到data
解决办法,把list中json转成字符串,服务器端再解析成json.
前端关键代码
var detail = "";
if ($(".list").length == 0)
{
return false;
}
$(".list").each(function() {
var day = $(this).find("input").attr("name");
var order = $(this).find("input:checked").val();
if (order == undefined){
order = ‘--‘;
}
detail += ‘{ "day" : "‘ + day + ‘", "order" : "‘ + order + ‘"},‘;
});
var jsonstr = "({orders:[" + detail + "]})";
$.ajax({
url : "",
type : "POST",
dataType : "json",
data: { params: JSON.stringify(eval(jsonstr))},
后端
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
String params = this.getRequest().getParameter("params");
JSONObject json = JSONObject.fromObject(params);
JSONArray orders = json.getJSONArray("orders");
int length = orders.size();
for(int i = 0; i < length; i++){
JSONObject item = orders.getJSONObject(i);
item.getString("day")
}
以上是关于Ajax 传包含集合的JSON的主要内容,如果未能解决你的问题,请参考以下文章