Я пытаюсь прочитать и разобрать строку JSON, которая начинается как массив (например, [{test: "test"}]
), и я продолжаю работать с ошибкой:
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
Ошибка в моем журнале указывает на эту строку:
Gson gson = new GsonBuilder().create();
PayoutCharges payoutList = gson.fromJson(reader, PayoutCharges.class);
Следуя некоторым ответам stackoverflow, я создал класс PayoutCharges в виде списка массивов PayoutCharge. Как исправить эту проблему, чтобы GSON узнала, что строка JSON находится внутри массива?
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;
}
}
После чтения ответа @Ridcully, я хочу спросить, есть ли способ обновить PayoutCharges.java
, чтобы он знал, что JSON является массивом. Что-то вроде @SerializedName([])
?