Модернизация Android Получить данные из ответа JSON - PullRequest
0 голосов
/ 26 апреля 2019

С моим приложением у меня есть следующий ответ 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, но был BEGIN_ARRAY в строке 1 столбца 29 путь $ .data

Любая помощь будет высоко ценится

Ответы [ 2 ]

3 голосов
/ 26 апреля 2019

Это связано с тем, что ответ JSON возвращает массив для ключа data, а тип модели, используемый для data, - это объект.

Ответ должен быть в формате

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

1 голос
/ 26 апреля 2019

Ваш userInfo должен быть таким, как показано ниже:

открытый класс 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;
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...