gpt4 book ai didi

java - Jackson 将对象转换为列表时出错

转载 作者:行者123 更新时间:2023-11-30 06:56:51 24 4
gpt4 key购买 nike

我正在尝试将长值数组发送到我的 Spring Controller 。

     {
"locationIds": [
45,
121,
89
]
}

在我的 Controller 中,我将请求正文定义为

@RequestBody Object locationIds

我在将此对象转换为列表时遇到错误,代码片段如下

List<Long> myObjects = mapper.readValue(jsonInString, new TypeReference<Object>(){});

错误是

java.util.LinkedHashMap cannot be cast to java.util.List.

最佳答案

如果您使用 Spring Controller ,那么为什么要显式使用对象映射器? Spring 框架中的 MappingJackson2HttpMessageConverter 可以将 JSON 负载绑定(bind)到类型化 bean 或非类型化 HashMap 实例。您在 mapper.readValue 中遇到的错误正在给您提示。您可以像下面这样测试它。

ObjectMapper mapper = new ObjectMapper();
String js = "{\"locationIds\":[45,121,89]}";
Map<String,List<Long>> myObjects = mapper.readValue(js, new TypeReference<Object>(){});
List<Long> list = myObjects.get("locationIds");

关于java - Jackson 将对象转换为列表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631915/

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