Android Retrofit从JSON响应获取数据

时间:2019-04-26 12:23:15

标签: android json retrofit

使用我的应用程序,我有以下JSON响应

{
    "status_code": 1000,
    "data": [
        "6b456880-629a-11e9-94e5-15f45eea94be",
        1101
    ],
    "message": "Verified"
}

我正在使用Retrofit,而我的响应对象是

public class basicRes {


    @SerializedName("status_code")
    int status_code;
    @SerializedName("data")
    userInfo data;
    @SerializedName("message")
    String message;

    public int getStatus_code() {
        return status_code;
    }

    public userInfo getData() {
        return data;
    }

    public String getMessage() {
        return message;
    }

    public class userInfo{
        String user_id;
        int province;

        public String getUser_id() {
            return user_id;
        }

        public int getProvince() {
            return province;
        }
    } 

但是我遇到了以下错误

期望BEGIN_OBJECT,但在第1行第29列路径$ .data处为BEGIN_ARRAY

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:3)

这是因为JSON响应正在返回data键的数组,而用于data的模型类型是对象。

响应应采用

格式
{
    "status_code": 1000,
    "data": {
        "user_id": "6b456880-629a-11e9-94e5-15f45eea94be",
        "province": 1101
    },
    "message": "Verified"
}

答案 1 :(得分:1)

您的userInfo应该是如下的arraylist:

公共类basicRes {

@SerializedName("status_code")
int status_code;
@SerializedName("data")
Arraylist<userInfo> data = new Arraylist<userInfo>();
@SerializedName("message")
String message;

public int getStatus_code() {
    return status_code;
}

public Arraylist<userInfo> getData() {
    return data;
}

public String getMessage() {
    return message;
}

public class userInfo{
    String user_id;
    int province;

    public String getUser_id() {
        return user_id;
    }

    public int getProvince() {
        return province;
    }
}