调用我的http方法时出现以下错误。(Spring启动应用程序)
“JsonMappingException:无法反序列化实例 java.util.ArrayList超出了START_OBJECT标记“。
它是一个DELETE调用,我正在传递我的JSON,如下所示
{
"locationIds": [
45,
121,
89
]
}
在我的控制器方面,我使用下面的代码作为我的请求主体。
@RequestBody List<Long> locationIDList
答案 0 :(得分:1)
您发布的是具有数组属性的Object,而不是数组。所以你应该有一个带有 locationIds 属性的Java类 LocationIdListDto.java ,然后就可以了。
最后一个推荐。你永远不应该发布或直接从JSON返回数组,总是将它们包装在一个对象中(就像你在这里一样)。我推荐这个的原因是,API最常见的变异之一是在外层添加另一个属性。如果最外面的结构不是数组,则这是不可能的,这意味着要么打破向后兼容性,要么必须为新JSON创建新的端点方法。