gpt4 book ai didi

json - REST 与 Spring 和 Jackson 完整数据绑定(bind)

转载 作者:IT老高 更新时间:2023-10-28 12:47:26 30 4
gpt4 key购买 nike

我正在使用 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 项目列表(简单数据绑定(bind))。相反,我希望将请求绑定(bind)到类型化对象的列表(在本例中为“ActionImpl”)。

我知道如果您直接使用 Jackson 的 ObjectMapper,这很容易做到:

List<ActionImpl> result = mapper.readValue(src, new TypeReference<List<ActionImpl>>() { }); 

但我想知道在使用 Spring MVC 和 MappingJacksonHttpMessageConverter 时实现这一目标的最佳方法是什么。有什么提示吗?

谢谢

最佳答案

我发现您还可以通过使用数组作为@RequestBody 而不是集合来解决类型删除问题。例如,以下将起作用:

public @ResponseBody String executeActions(@RequestBody ActionImpl[] actions) { //... }

关于json - REST 与 Spring 和 Jackson 完整数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441557/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com