我正在尝试向Spring控制器发送一个long值数组。
{
"locationIds": [
45,
121,
89
]
}
在我的控制器中,我已将请求正文定义为
@RequestBody Object locationIds
将此对象转换为列表时出错,下面给出了代码段
List<Long> myObjects = mapper.readValue(jsonInString, new TypeReference<Object>(){});
错误是
java.util.LinkedHashMap cannot be cast to java.util.List.
答案 0 :(得分:1)
如果您使用的是Spring控制器,那么为什么要显式使用Object mapper? Spring框架中的MappingJackson2HttpMessageConverter可以将JSON有效负载绑定到类型化的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");