我在api响应中有2个响应,如果数据正确,则有一个响应,而对于不正确的数据,我可以使用我的pojo类处理它,这是我的类
public class AirCraftSearchResponse {
@SerializedName("Data")
@Expose
private Data data;
@SerializedName("Message")
@Expose
private Object message;
public Data getData() {
return data;
}
public void setData(Data data) {
this.data = data;
}
public Object getMessage() {
return message;
}
public void setMessage(Object message) {
this.message = message;
}
这是faill的两个回应
{
"Success": false,
"Message": "Could not convert string to DateTime: 2019-12-08T0000:00. Path 'Legs[0].DateTime', line 1, position 1185.",
"Data": [],
"total": 0
}
成功回应
{
"Success": true,
"Message": "",
"Data": {},
"total": 0
}
当我做出回应并且我获得成功时,没有问题发生,因为我的pojo类具有相同的响应对象,当我失败时它会例外,我无法处理或得到它的消息,因为它转到onFailure方法 当我打印它的消息我得到这一行
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 143 path $.Data
答案 0 :(得分:0)
问题本身就是
预计BEGIN_OBJECT但是BEGIN_ARRAY
您的价值类型为“数据”的问题。成功的是,你发送了对象即{},如果失败,你发送一个数组,即[]。尝试失败发送对象{},你的问题就会解决。
右下方的失败
{
"Success": false,
"Message": "Could not convert string to DateTime: 2019-12-08T0000:00.
Path 'Legs[0].DateTime', line 1, position 1185.",
"Data": {},
"total": 0
}