【发布时间】:2017-09-06 21:18:30
【问题描述】:
我有什么
我有一个服务器success response
{
"response_code": 200,
"status": "success",
"message": "enqiry chat fetched successfully",
"meta_data": {
"count": "6"
},
"data": {
"enquiries": [
]
}
}
当 Error 时,同样的 API 返回
{
"response_code": 500,
"status": "error",
"meta_data": {
"count": 0
},
"data": [],
"message": "Please specify all required parameter to add enquiries"
}
发生了什么
在error scenario,data 从 JsonObject 更改为 JsonArray
我的问题
在成功响应时一切正常(因为我从success response 制作了POJO class)
在错误响应时我的应用程序崩溃说尝试读取对象但找到数组
我不能做什么
我无法更改 back-end ,因为它已经开发并适用于网站。
我做了什么
我用谷歌搜索并找到了许多与我的问题无关的解决方案
POJO
public class ReviewModel {
@SerializedName("data")
private Data mData;
public Data getData() {
return mData;
}
public void setData(Data data) {
mData = data;
}
public class Data {
@SerializedName("reviews")
private List<Review> mReviews;
public List<Review> getReviews() {
return mReviews;
}
public void setReviews(List<Review> reviews) {
mReviews = reviews;
}
}
public class Review {
@SerializedName("comment_date")
private String mCommentDate;
public String getCommentDate() {
return mCommentDate;
}
public void setCommentDate(String comment_date) {
mCommentDate = comment_date;
}
}
}
【问题讨论】:
-
我建议不要定义像 JSONObject 或 JSONArray 这样的类型,而是使用 Object ...
-
您的
data应该是JSONObject或JSONArray。如果它没有任何数据,你会得到空白。 -
你为什么不使用 gson 库?
-
请出示您的改造实例创建代码。我正在为错误和正常流程使用不同的对象,它们工作正常。
-
请查看我的 POJO 课程并建议我进行更改
标签: android retrofit2 jsonschema2pojo