【发布时间】:2017-04-28 11:03:02
【问题描述】:
我正在发送以下 JSON:
{
"sqId": "10009",
"pCode": [
{
"key": [
[
1,
0,
1
]
]
}
],
"hdId": "87",
"sType": [
{
"key": [
{
"id": "id_1",
"q": "1",
"pCode": "pCode_1",
"Type": "T_1",
"Level": "f"
}
]
}
]
}
与下面的 POJO 映射:
public class Pinfo {
protected String sqId;
protected String hdId;
protected Map<String, Integer> pCode;
protected Map<String, List<sType>> sType;
public Map<String, List<sType>> getsType() {
return sType;
}
public void setsType(Map<String, List<sType>> sType) {
this.sType = sType;
}
public String getsqId() {
return sqId;
}
public void setsqId(String sqId) {
this.sqId = sqId;
}
public Map<String, Integer> getpCode() {
return pCode;
}
public void setpCode(Map<String, Integer> pCode) {
this.pCode = pCode;
}
public String gethdId() {
return hdId;
}
public void sethdId(String hdId) {
this.hdId = hdId;
}
}
现在使用以下代码读取 JSON:
Map<String, Integer> pMap = (Map<String, Integer>) PinfoObj.getpCode(); //Getting Error
logger.debug("### pMap ###"+pMap.values());
但我遇到了错误:
“无法读取文档:无法反序列化 java.util.LinkedHashMap out of START_ARRAY token\n at [Source: java.io.PushbackInputStream@5ed7c090;行:2,列:40](通过 参考链:com.ve.pg.dto.Pinfo[\"pCode\"]);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:不能 从 START_ARRAY 中反序列化 java.util.LinkedHashMap 的实例 令牌\n 在 [来源:java.io.PushbackInputStream@5ed7c090;线:2, 列:40](通过参考链: com.vonage.pg.dto.Pinfo[\"pCode\"])"
目前无法弄清楚我缺少什么,任何想法或提示都会很棒。
【问题讨论】:
-
你从哪里得到 400 错误?
-
pCode在我看来不像Map<String, Integer>,更像是Map<String, Map<String, Integer[][]>[]>。 -
在 Invalid Input(JSON) 的情况下手动抛出 400。