【问题标题】:Retrofit response exception改造响应异常
【发布时间】:2021-07-07 12:14:27
【问题描述】:

在第一种情况下,当它返回成功为真时,一切正常,当它获得成功布尔值时的问题是假,然后是错误:

应为 BEGIN_OBJECT,但在第 1 行第 26 列路径 $.data 处为 BEGIN_ARRAY

可以用一个响应类来完成吗?

Json response:
{
    "success": true,
    "data": {
        "message": "User created",
    }
}
Json response:

{
    "success": false,
    "data": [
        {
            "code": "existing_user_login",
            "message": "User Exist !"
        }
    ]
}
Code:
public class Response {
    public Boolean success;
    public Data data;

    public Boolean isSuccess() { return success; }

    public Data getData() {
        return data;
    }

    public class Data {
        public String code;
        public String message;
        public String getMessage() { return message; }
        public String getCode() { return code; }
    }

}

【问题讨论】:

    标签: java android


    【解决方案1】:

    在成功响应中,您正在获取对象

    “数据”:{ // 对象 "message": "用户创建", “身份证”:98 }

    在失败响应中你得到一个数组

    “数据”:[ //数组 { "code": "existing_user_login", “消息”:“用户存在!” } ]

    预期的失败响应是

    “数据”:
    { // 目的 "code": "existing_user_login", “消息”:“用户存在!” }

    【讨论】:

    • 不幸的是,我不能干涉我得到的东西,成功是对象,错误是数组,如何例外?
    【解决方案2】:

    当响应为"success": true 时,您将在data 中获得object

    那么当响应为"success": false 时,您将在data 中获得array

    这会给你带来麻烦

    【讨论】:

      猜你喜欢
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 2016-06-18
      • 1970-01-01
      • 2019-03-14
      • 2018-05-16
      • 1970-01-01
      相关资源
      最近更新 更多