我正在使用 Spring MVC 来处理 JSON POST 请求。在封面下,我使用的是基于 Jackson JSON 处理器构建的 MappingJacksonHttpMessageConverter,并在您使用 mvc:annotation-driven 时启用。
我的一项服务会收到一系列操作:
@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 时实现这一目标的最佳方法是什么。有什么提示吗?
谢谢