У меня есть диалоговое окно со списком сгенерированных полей, имена которых содержат основной идентификатор пользователя, которому принадлежат данные.Я создаю объект JSON с данными из этих полей и размещаю его в Spring Controller.Поскольку в JSON нет ключей, которые можно сопоставить с каким-либо конкретным атрибутом в пользовательском объекте, к какому типу объекта я должен привести его, чтобы легче всего перебирать объект на стороне сервера?Поскольку он в настоящее время закодирован, я пытаюсь разрешить Spring разобрать объект.Возможно, есть лучший шаблон проектирования, который был бы более чистым?
Это мой json:
({'1234567890_testID':"432342342", '0987654321_testID':"345353453"})
Значение для каждой записи будет сохранено для пользователя с идентификатором, который делаетдо префикса ключа _testID.Потенциально существуют и другие типы ключей, например: 1203048829_otherTestID.
Вот мой код:
Javascript:
var $testID = $('#testDIV input');
var testData = {};
$testID.each(function(i, el) {
testData[$(el).attr("id")] = $(el).val();
});
var params= $.extend({ "tableID" : "testTable" }, {"testData" : testData.toSource()});
$.ajax({ "dataType": "json",
"type": "put",
"url": this.url,
"data": params,
"success": function(alert("Success!"))
})
Подпись метода контроллера:
@RequestMapping(value="/test", method=RequestMethod.PUT)
public @ResponseBody String updateTest(@ModelAttribute final TestCriteria tc)
ModelAttribute bean:
public class TestCriteria {
private Map<String, Object> testData;
getters and setters...
}
Параметры Firebug:
action PUT
testData ({'100540718367_testID':"432342342", '100540718371_testID':"252535345"})
tableID testTable