【发布时间】:2011-05-25 09:39:09
【问题描述】:
我正在使用 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";
}
我发现 Jackson 将 requestBody 映射到 java.util.LinkedHashMap 项目列表(简单数据绑定)。相反,我希望将请求绑定到类型化对象的列表(在本例中为“ActionImpl”)。
我知道如果您直接使用 Jackson 的 ObjectMapper,这很容易做到:
List<ActionImpl> result = mapper.readValue(src, new TypeReference<List<ActionImpl>>() { });
但我想知道在使用 Spring MVC 和 MappingJacksonHttpMessageConverter 时实现这一目标的最佳方法是什么。有什么提示吗?
谢谢
【问题讨论】:
标签: json spring rest spring-mvc jackson