Разбор json на объекты java в spring-mvc

Я знаком с тем, как вернуть json из моих методов @Controller с помощью аннотации @ResponseBody .

Теперь я пытаюсь прочитать кое-что json в мой контроллер, но пока не повезло. Вот подпись моего контроллера:

@RequestMapping(value = "/ajax/search/sync")
public ModelAndView sync(@RequestParam("json") @RequestBody SearchRequest json) {

Но когда я пытаюсь вызвать этот метод, Spring жалуется, что: Не удалось преобразовать значение типа java.lang.String в требуемый тип com.foo.SearchRequest

Удаление аннотации @RequestBody , похоже, не имеет значения.

Ручной синтаксический анализ json работает, поэтому Джексон должен быть в пути к классам:

// This works
@RequestMapping(value = "/ajax/search/sync")
public ModelAndView sync(@RequestParam("json") String json) {
    SearchRequest request;
    try {
        request = objectMapper.readValue(json, SearchRequest.class);
    } catch (IOException e) {
        throw new IllegalArgumentException("Couldn't parse json into a search request", e);
    }

Есть идеи? Я пытаюсь сделать что-то, что не поддерживается?

29
задан oksayt 13 October 2010 в 07:59
поделиться