【发布时间】:2017-10-15 07:44:39
【问题描述】:
我正在发布这样的内容:
{
"stuff": [
{
"thingId": 1,
"thingNumber": "abc",
"countryCode": "ZA"
},
{
"thingId": 2,
"thingNumber": "xyz",
"countryCode": "US"
}
]
}
我可以按如下方式检索控制器中的数据:
@RequestMapping(value = "/stuffs", method = RequestMethod.POST)
public String invoices(@RequestBody Map<String, List <Stuff>> stuffs) {
return "Hooray";
}
我真正想做的只是将一个列表传入控制器;即:
@RequestMapping(value = "/stuffs", method = RequestMethod.POST)
public String invoices(@RequestBody List <Stuff> stuffs) {
return "I'm sad that this won't work.";
}
但是,杰克逊不喜欢这样。我得到的错误如下:
无法读取 JSON 文档:无法反序列化 java.util.ArrayList out of START_OBJECT token\n at [Source: java.io.PushbackInputStream@2a30a2f4;行:1,列:1];嵌套的 例外是 com.fasterxml.jackson.databind.JsonMappingException: Can 不在 START_OBJECT 中反序列化 java.util.ArrayList 的实例 令牌\n 在 [来源:java.io.PushbackInputStream@2a30a2f4;线:1, 列:1]
我无法发送以下内容(因为它不是有效的 JSON):
{
[
{
"thingId": 1,
"thingNumber": "abc",
"countryCode": "ZA"
},
{
"thingId": 2,
"thingNumber": "xyz",
"countryCode": "US"
}
]
}
我确信这很简单,但我无法从 StackOverflow 和 Google 搜索中提取答案。
任何帮助将不胜感激! :)
【问题讨论】:
标签: java json spring spring-boot jackson