0
我想在ajax调用中传递javascript对象数组。ajax调用错误的javascript数组序列化
我让我的数组是这样的:
var itemsToEdit = [];
$(".editedItem[value='true']").closest("tr").each(function() {
var itemToEdit = {
id: $(this).find(".idInput").val(),
name: $(this).find(".nameInput").val(),
code: $(this).find(".codeInput").val()
}; // Represents SomeClass java class with fields: id, name, code
itemsToEdit.push(itemToEdit);
});
然后执行Ajax调用:
$.ajax({
url: "MyActionBean.action?saveChanges",
type: "Post",
dataType: "json",
data: itemsToEdit,
success: function(data) {
alert("Oh, no");
}
});
问题是:在服务器端,我收到地图列表,而不是SomeClass的对象列表。 我查了一下浏览器发送,它是:
itemsToEdit[0][id]:4
itemsToEdit[0][name]:Florida
itemsToEdit[0][code]:FL
itemsToEdit[1][id]:3
itemsToEdit[1][name]:California
itemsToEdit[1][code]:CA
但我当然希望能有这个,因为我认为这是正确的映射SomeClass的列表:
itemsToEdit[0].id:4
itemsToEdit[0].name:Florida
itemsToEdit[0].code:FL
itemsToEdit[1].id:3
itemsToEdit[1].name:California
itemsToEdit[1].code:CA
我在哪里错了?
(也许并不重要信息,了解背景:我使用的条纹框架和它在请求映射参数称为ActionBean的字段)
谢谢!
'itemsToEdit [0] [id]:4'和'itemsToEdit [0] .id:4' UM,它们意味着同样的事情。括号和点符号。 – epascarello
好的。但是Stripes框架并不这么认为:)因为第一个变体是通过条带映射到:private List
如果你将一个数组传递给'data:',那么jQuery几乎不会做你期望的事情。你有没有检查你的POST请求的实际内容? – Bergi