Expected BEGIN_ARRAY but was BEGIN_OBJECT если убрать List тогда выводит это Expected BEGIN_OBJECT but was BEGIN_ARRAY
Я не знаю как исправить программу помогите плиз
public void onResponse(Call<Payment> call, Response<Payment> response) {
load.setVisibility(View.GONE);
if(response.code()==200 && response.body().getParams().getReturn().getStatus().getCode()==1){
List<Parameter> parameterList=new ArrayList<>();
boolean isAr=false;
if(response.body().getParams().getReturn().getParameters().getParameter() instanceof Collection<?>){
isAr=true;
Gson gson=new GsonBuilder().create();
TypeToken<List<Parameter>> responseTypeToken = new TypeToken<List<Parameter>>() {};
parameterList = gson.fromJson(gson.toJson(response.body().getParams().getReturn().getParameters().getParameter()), responseTypeToken.getType()); //ошибкой показывает эту строку
Log.i(TAG, "СТРОКА 501 ПРОШЛО!");
}else{
isAr=false;
Gson gson=new GsonBuilder().create();
nextUrl=response.body().getUrl();
oneParameter = gson.fromJson(gson.toJson(response.body().getParams().getReturn().getParameters().getParameter()), Parameter.class);
}
А вот класс Parameter
public class Parameter {
@SerializedName("name")
@Expose
private String name;
@SerializedName("type")
@Expose
private String type;
@SerializedName("title")
@Expose
private String title;
@SerializedName("regexp")
@Expose
private String regexp;
@SerializedName("description")
@Expose
private String description;
@SerializedName("options")
@Expose
private Options options;
@SerializedName("parameterCondition")
@Expose
private ParameterCondition parameterCondition;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRegexp() {
return regexp;
}
public void setRegexp(String regexp) {
this.regexp = regexp;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Options getOptions() {
return options;
}
public void setOptions(Options options) {
this.options = options;
}
public ParameterCondition getParameterCondition() {
return parameterCondition;
}
public void setParameterCondition(ParameterCondition parameterCondition) {
this.parameterCondition = parameterCondition;
}
@Override
public String toString() {
return "Parameter{" +
"name='" + name + '\'' +
", type='" + type + '\'' +
", title='" + title + '\'' +
", regexp='" + regexp + '\'' +
", description='" + description + '\'' +
", options=" + options +
", parameterCondition=" + parameterCondition +
'}';
}
}
Вот файл:
{"params":{"return":{"status":{"code":1,"message":"success"}, "parameters":{"parameter":[{ "name":"prefix","type":"select","title":"Prefiks","regexp":"^(60)$","description":"can be 2 digit (60,44,31,80, etc)","options":{"option":{"title":"060","value":"60"}}},{"name":"number","type":"number","title":"Nomer","regexp":"^\d{7}$","description":"last 7 digits of Rusim number"}]}}},"url":"https://test.ru/api/ru/gateway/billing/rusim"}
Класс Payment:
public class Payment {
@SerializedName("params")
@Expose
private Params params;
@SerializedName("url")
@Expose
private String url;
public Params getParams() { return params; }
public void setParams(Params params) {
this.params = params;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "Payment{" +
"params=" + params +
", url='" + url + '\'' +
'}';
}
Класс Return:
public class Return {
@SerializedName("status")
@Expose
private Status status;
@SerializedName("parameters")
@Expose
private Parameters parameters;
public Status getStatus() {
return status;
}
public void setStatus(Status status) {
this.status = status;
}
public Parameters getParameters() {
return parameters;
}
public void setParameters(Parameters parameters) {
this.parameters = parameters;
}
@Override
public String toString() {
return "Return{" +
"status=" + status +
", parameters=" + parameters +
'}';
}
}