Ich versuche, die folgende JSON zu analysieren:Android Gson Erwartet BEGIN_ARRAY aber war BEGIN_OBJECT in Zeile 1 Spalte 2
{
"Message": "The request is invalid.",
"ModelState": {
"": [
"Name [email protected] is already taken.",
"Email '[email protected]' is already taken."
]
}
}
Der Code i verwendet:
ErrorRequest page = gson.fromJson(response.getResponseString(), ErrorRequest.class);
Aber ich erhalte die Fehlermeldung: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Erwartete BEGIN_ARRAY aber war BEGIN_OBJECT in Zeile 1 Spalte 2
Meine POJO Klassen sind: ErrorRequest.Java
package com.devinedesign.cleanride.domain;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class ErrorRequest
{
@SerializedName("Message")
private String message;
@SerializedName("ModelState")
private List<ModelState> modelState;
public ErrorRequest(String message,List<ModelState> modelState)
{
this.message = message;
this.modelState = modelState;
}
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
public List<ModelState> getModelState()
{
return modelState;
}
public void setModelState(List<ModelState> modelState)
{
this.modelState = modelState;
}
}
ModelState.Java
package com.devinedesign.cleanride.domain;
import com.google.gson.annotations.SerializedName;
public class ModelState
{
@SerializedName("ModelState")
private String modelState;
public ModelState(String modelState)
{
this.modelState = modelState;
}
public String getModelState() {
return modelState;
}
public void setModelState(String modelState) {
this.modelState = modelState;
}
}
Soll Ihr JSON eine leere Schlüsselzeichenfolge vor dem Array haben? –
Nun, mein Klient hat mir das in seiner API zur Verfügung gestellt. Ist das der Grund, warum ich den Fehler bekommen habe? – aaa111
Es soll wohl eher wie '{ "Message": "Die Anforderung ist ungültig.", "Model": "an. Name [email protected] ist bereits vergeben"[ , „E-Mail ‚c @ gmail. com 'ist bereits vergeben. " ] } '. Der leere Schlüssel scheint nur eine ziemlich einfache JSON-Antwort zu abstrahieren. – zgc7009