1 回答
TA贡献1825条经验 获得超6个赞
似乎是因为失败的 JSON 缺少 items 属性,它将 List items 设置为 null
是的。你得到了NullPointerException,因为你调用toString()了一个空对象。这是预期的行为。
解决方案
error由于和具有不同的模式success,因此您需要创建一个具有这两个值的模型。下面给出一个最小的例子,
响应模型.java
class ResponseModel {
// ERROR
private final Boolean success;
private final Error error;
// SUCCESS
private final int item_count;
// more success values...
ResponseModel(Boolean success, Error error, int item_count) {
this.success = success;
this.error = error;
this.item_count = item_count;
}
public class Error {
private final int code;
private final String message;
private Error(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
public Boolean getSuccess() {
return success;
}
public Error getError() {
return error;
}
public int getItem_count() {
return item_count;
}
}
在onResponse方法中,您可以像这样检查响应是否成功
ResponseModel responseModel = response.body();
if (responseModel.getError() == null) {
// success
doSomethingWithSuccess(responseModel.getItem_count())
} else {
// error
doSomethingWithError(responseModel.getError())
}
添加回答
举报