I have some problem about retrofit2
How to fix Expected BEGIN_ARRAY but was BEGIN_OBJECT in retrofit2
I don't know to fix it
What's my wrong ?
my json is
{
"result": true,
"message": "success",
"data": [
{
"id": "10",
"type_name": "pppppp"
},
{
"id_mt": "11",
"type_name": "aaaaaa"
}
]
}
and my model class is
public class MessageFastModel {
private boolean result;
private String message;
private List<DataBean> data;
public boolean isResult() {
return result;
}
public void setResult(boolean result) {
this.result = result;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String id;
private String type_name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType_name() {
return type_name;
}
public void setType_name(String type_name) {
this.type_name = type_name;
}
}
}
My code is
@FormUrlEncoded
@POST("api/message_type")
Call<MessageFastModel> listMessageFast(@Field("token") String token);
and
Call<MessageFastModel> dddddCall = ooooo.listMessageFast(Preferences.getToken());
dddddCall.enqueue(new Callback<MessageFastModel>() {
@Override
public void onResponse(Call<MessageFastModel> call, Response<MessageFastModel> response) {
if (response.isSuccessful()) {
Log.d("ddd", "onResponse: " + response.body().getData().size());
}
}
@Override
public void onFailure(Call<MessageFastModel> call, Throwable t) {
Log.e("ddd", "onFailure: " + t.getMessage());
}
});
but My error is
E/ddd: onFailure: java.lang.IllegalStateException: Expected
BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 44 path $.data
what's problem ? thanks!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…