2011-01-01 3 views
2

Я отправляю запрос JSON контроллеру Spring 3.0. Метод подписи ...Как построить объекты и связанные объекты из запроса JSON с использованием Spring

@RequestMapping(value="/add", method=RequestMethod.POST) 
public @ResponseBody Map<String, ? extends Object> add(@RequestBody Entry) 

JSON выглядит так ...

{"user":"1"} 

запись объект имеет один атрибут типа пользователя.

Когда запрос передается эта ошибка возникает,

org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.x.y.z.Entry, problem: no suitable creator method found 

Я предполагаю, что ошибка происходит из-за того, что пользователь на запись типа пользователя, а не строка («1» является передается в JSON).

Есть ли способ принять «1» и использовать его для создания реального объекта пользователя (путем поиска его в базе данных в этом случае)?

ответ

2

Есть ли у входа конструктор без параметров?

Это ваше первое место для поиска. Обычно такие ошибки происходят из-за того, что код ищет конструктор без параметров для создания Entry с.

Ваша идея, то есть создать пользователя в качестве реального пользователя в порядке, но это должно быть сделано после вызова этого метода, в каком-то другом слое или что-то в этом роде. Вы хотите сохранить все просто, не мешая сортировке json. Вы можете добавить к нему другой слой.

Смежные вопросы