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