Я использую Spring MVC для обработки запросов POST JSON. Под обложками я использую MappingJacksonHttpMessageConverter, построенный на процессоре Jackson JSON, и включен, когда вы используете управляемый аннотацией mvc:
Одна из моих служб получает список действий:
@RequestMapping(value="/executeActions", method=RequestMethod.POST)
public @ResponseBody String executeActions(@RequestBody List<ActionImpl> actions) {
logger.info("executeActions");
return "ACK";
}
Я обнаружил, что Джексон отображает requestBody в список элементов java.util.LinkedHashMap(простая привязка данных). Вместо этого я хотел бы, чтобы запрос был привязан к списку типизированных объектов (в данном случае "ActionImpl" ).
Я знаю, что это легко сделать, если вы используете Jackson ObjectMapper напрямую:
List<ActionImpl> result = mapper.readValue(src, new TypeReference<List<ActionImpl>>() { });
но мне было интересно, какой лучший способ достичь этого при использовании Spring MVC и MappingJacksonHttpMessageConverter. Любые подсказки?
Спасибо