【发布时间】:2014-04-17 14:09:38
【问题描述】:
我正在尝试将 JSON 请求传递到我的服务器,其中控制器在将 JSON 转换为 POJO 时遇到错误。
JSON 请求
{
"request":[
{"name":"mac"},
{"name":"rosy"}
]
}
我的控制器功能
@RequestMapping(value = "/namelist",
method = RequestMethod.POST,
consumes = { "application/json" },
produces = {"application/json"})
public ... postNameList(@RequestBody NameList names) {}
Public Class NameList extends ArrayList<Name> {}
Public Class Name { private name; ...}
错误
消息:“无法读取 JSON:无法反序列化 com.abc.xyz.mypackage.NameList out of START_OBJECT token at [Source: org.eclipse.jetty.server.HttpConnection$Input@79aac24b{HttpChannelOverHttp@1d109942{r=1,a=DISPATCHED,uri=/namelist},HttpConnection@2cbdcaf6{FILLING},g=HttpGenerator{s=START},p= HttpParser{s=END,137 137}};行:1,列:1]
我不确定代码有什么问题。我对 Spring 还很陌生,因此不胜感激。
【问题讨论】:
-
您的 JSON 不是数组。它是一个具有单个字段的对象,其值为一个数组。
-
你能给我举一个 JSON 是数组的例子吗?
-
删除 JSON 中方括号前后的所有内容... Presto,您只有一个数组(并且您的代码可以工作)
标签: java json spring jackson pojo