Ich versuche, eine JSON-Zeichenfolge, die als Array beginnt zu lesen und zu analysieren (zB [{test: "test"}]
) und ich immer laufen in den Fehler:
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
Die Fehler in meinem Logpunkte auf dieser Linie:
Gson gson = new GsonBuilder().create();
PayoutCharges payoutList = gson.fromJson(reader, PayoutCharges.class);
einige Antworten nach Stackoverflow, habe ich die PayoutCharges Klasse als Array Liste der PayoutCharge. Wie behebe ich dieses Problem, damit GSON weiß, dass die JSON-Zeichenfolge in einem Array ist?
PayoutCharges.java
package com.app.driver.entity;
import java.util.ArrayList;
import com.google.gson.annotations.SerializedName;
public class PayoutCharges {
//handle error
@SerializedName("error")
private Error mError;
public Error getError() {
return mError;
}
public void setError(Error error) {
mError = error;
}
//handle data
@SerializedName("payoutCharges")
private ArrayList<PayoutCharge> mPayoutCharges;
public ArrayList<PayoutCharge> getPayoutCharges() {
return mPayoutCharges;
}
public void setPayoutCharges(ArrayList<PayoutCharge> payoutCharges) {
mPayoutCharges = payoutCharges;
}
}
Nach @ Ridcully Antwort zu lesen, möchte ich eine Möglichkeit für mich, wenn es fragen, ist PayoutCharges.java
so zu aktualisieren, dass sie weiß, dass die JSON ein Array ist. So etwas wie @SerializedName([])
?
Tuncer Sie haben meinen Tag gerettet. Danke für die Lösung – PPD
Einfach, aber tolles Beispiel, das mein Problem behoben! Danke – RoDo
Vielen Dank, es funktioniert –