Estoy usando Spring MVC para manejar las solicitudes de JSON POST. Debajo de las portadas, estoy usando el MappingJacksonHttpMessageConverter creado en el procesador Jackson JSON y habilitado cuando usa el mvc: anotado por la anotación.RESTO con enlace de datos completo de Spring y Jackson
Una de mis servicios recibe una lista de acciones:
@RequestMapping(value="/executeActions", method=RequestMethod.POST)
public @ResponseBody String executeActions(@RequestBody List<ActionImpl> actions) {
logger.info("executeActions");
return "ACK";
}
he encontrado que Jackson mapea la requestBody a una lista de elementos java.util.LinkedHashMap (enlace de datos simples). En cambio, me gustaría que la solicitud se vincule a una Lista de objetos tipeados (en este caso, "ActionImpl").
Sé que esto es fácil de hacer si se utiliza ObjectMapper de Jackson directamente:
List<ActionImpl> result = mapper.readValue(src, new TypeReference<List<ActionImpl>>() { });
pero me preguntaba cuál es la mejor manera de lograr esto al utilizar Spring MVC y MappingJacksonHttpMessageConverter. ¿Algún consejo?
Gracias
Tienes razón y el truco que propones funciona. Muchas gracias –
Este problema ocurrió en Spring 3.1 pero se corrigió en Spring 3.2: https://jira.spring.io/browse/SPR-9570 – Martin