【发布时间】:2017-10-14 01:44:14
【问题描述】:
JSON:
[{"DataContainer": {
"ShoppingDetails": [
[
{
"Value": "3",
"Name": "Price"
},
{
"Value": "XAV-13-9LO",
"Name": "Item Code"
}
],
[
{
"Value": "9",
"Name": "Price"
},
{
"Value": "WEB-13-9XH",
"Name": "Item Code"
}
]
]
}
}]
我已经有一个类DataContainer:
public class DataContainer extends WebResp{
@SerializedName("ShoppingDetails")
private ShoppingDetails[] shoppingDetails;
public ShoppingDetails[] getShoppingDetails() {
return shoppingDetails;
}
public void setShoppingDetails(ShoppingDetails[] shoppingDetails) {
this.shoppingDetails= shoppingDetails;
}
}
和类 ShoppingDetails:
public class ShoppingDetails{
private Field[] field;
public Field[] getField() {
return field;
}
public void setField(Field[] field) {
this.field= field;
}
}
但不幸的是,我最终得到了 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期 BEGIN_OBJECT 但在第 61 行第 10 列路径 $[0].DataContainer.ShoppingDetails[0]
处为 BEGIN_ARRAY有人能指出我使用 GSON 将此 JSON 映射到 Java 对象的正确方向吗?
【问题讨论】:
-
您将
shoppingDetails声明为一个数组,但它是 JSON 中的一个数组。 -
“为什么 GSON 在解析 array of array 对象时会给我一个错误?” 你的标题说明了一切。 “数组数组”。
shoppingDetails必须是Field[][],即Field的数组。然后Field应该是一个有两个String字段的类,分别用@SerializedName("Value")和@SerializedName("Name")注释。 -
啊!非常感谢你们俩。这真是一个天真的错误。有没有办法接受评论作为答案?
-
@Andreas 应该将评论作为答案发布,然后可以接受
标签: java arrays json object gson