Le JSON:Pourquoi GSON me donne-t-il une erreur lors de l'analyse d'un tableau de tableau d'objets?
[{"DataContainer": {
"ShoppingDetails": [
[
{
"Value": "3",
"Name": "Price"
},
{
"Value": "XAV-13-9LO",
"Name": "Item Code"
}
],
[
{
"Value": "9",
"Name": "Price"
},
{
"Value": "WEB-13-9XH",
"Name": "Item Code"
}
]
]
}
}]
J'ai déjà un DataContainer de classe:
public class DataContainer extends WebResp{
@SerializedName("ShoppingDetails")
private ShoppingDetails[] shoppingDetails;
public ShoppingDetails[] getShoppingDetails() {
return shoppingDetails;
}
public void setShoppingDetails(ShoppingDetails[] shoppingDetails) {
this.shoppingDetails= shoppingDetails;
}
}
et ShoppingDetails classe:
public class ShoppingDetails{
private Field[] field;
public Field[] getField() {
return field;
}
public void setField(Field[] field) {
this.field= field;
}
}
Mais malheureusement, je fini avec com.google.gson .JsonSyntaxException: java.lang.IllegalStateException: BEGIN_OBJECT attendue mais était BEGIN_ARRAY à la ligne 61 colonne 10 chemin $ [0] .DataContainer.ShoppingDet ails [0]
Quelqu'un pourrait-il me diriger dans la bonne direction pour mapper ce JSON à un objet Java en utilisant GSON?
Vous avez déclaré 'shoppingDetails' en tant que tableau mais c'est un tableau de tableau dans votre JSON. –
* "Pourquoi GSON me donne-t-il une erreur lors de l'analyse d'un ** tableau de tableau ** d'objets?" * Votre titre dit tout. "** tableau de tableau **". 'shoppingDetails' doit être' Field [] [] ', c'est-à-dire un tableau de tableau de' Field'. Et 'Field' devrait alors être une classe avec deux champs' String' annotés avec '@SerializedName (" Value ")' et '@SerializedName (" Name ")'. – Andreas
Ah! Merci beaucoup à vous deux. C'est vraiment une erreur d'origine. Y a-t-il un moyen d'accepter un commentaire comme réponse? – redflour