【发布时间】:2018-02-04 17:59:35
【问题描述】:
我的 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;
}
这是失败的两个响应
{
"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
【问题讨论】:
-
我听不懂你能给我解释一下吗?
-
您可以通过查看改造 github repo 上的示例来编写自己的自定义转换器
-
感谢您的评论,但我无法得到解决方案:)
-
@codekidX 我试试你的链接把我得到另一个异常我无法将对象转换为模型我尝试这一行 MyPOJO myObj = (MyPOJO) response.body();我将数据转换为对象,它给了我另一个例外