ここで SO に関する大きな助けを得た後、次のスニペットを使用して JS オブジェクトを構築しました。
var noticeMap = $('#preExamNoticesTable tbody tr').map(function() {
var $cells = $(this).children();
return {
sequence: $cells.eq(0).children('input').val(),
noticeUID: $cells.eq(1).text()
};
});
結果の noticeMap の例は次のようになります (firebug から):
jQuery(Object { sequence="1", noticeUID="JP-L23013663997630352308"},
Object { sequence="3", noticeUID="JP-L22913664089460612172"},
Object { sequence="4", noticeUID="JP-L22913664090188631530"},
Object { sequence="2", noticeUID="JP-L22913664089408651799"})
私が試してみるJSON.stringify(noticeMap)
と、POSTで渡したくない余分なデータが文字列に追加されることを除けば、うまく機能します。各値 (noticeMap のオブジェクト) に対して数値キーを生成しますが、最後の目的の k:v ペアの後、文字列にはコンテキスト obj、length、およびprevObject obj も含まれます。stringify()
これを POST した後の JSON は次のとおりです。
{ "0": { "sequence": "1", "noticeUID": "JP-L23013663997630352308" }, "1": { "sequence": "3", "noticeUID": "JP-L22913664089460612172" }, "2": { "sequence": "4", "noticeUID": "JP-L22913664090188631530" }, "3": { "sequence": "2", "noticeUID": "JP-L22913664089408651799" }, "length": 4, "prevObject": { "0": {}, "1": {}, "2": {}, "3": {}, "length": 4, "prevObject": { "0": { "location": {}, "jQuery19105836315711643562": 1 }, "context": { "location": {}, "jQuery19105836315711643562": 1 }, "length": 1 }, "context": { "location": {}, "jQuery19105836315711643562": 1 }, "selector": "#preExamNoticesTable tbody tr" }, "context": { "location": {}, "jQuery19105836315711643562": 1 } }
何がこれを引き起こしているのかわかりません。stringify がオブジェクトの obj から JSON 文字列を作成する方法に関係があるという仮説を立て始めましたが、noticeMaps()
現在は美しく機能している my を使用できません。何か案は?
ありがとう!