Как использовать модификацию с форматом ответа зависит от параметра? - PullRequest
0 голосов
/ 26 мая 2018

У меня есть API для входа в систему, где формат ответа варьируется в зависимости от типа входа пользователя в систему.

Структура Json с типом = 4

{
    "type": 4,
    "user": {
        "coord_id": 5,
        "coord_login_id": 4,
        "coord_name": "Randall Pfannerstill",
    }
}

Формат Json с типом =2

{
    "type": 2,
    "user": {
        "stud_id": 1,
        "stud_reference_id": "3",
    }
} 

я использую этот класс модели для обработки "type" 2

public class LoginResponse {
    @SerializedName("type")
    public int type;
    @SerializedName("user")
    public User user;

    public class User {
        @SerializedName("stud_id")
        public int stud_id;
        @SerializedName("stud_reference_id")
        public String stud_reference_id;

    }

Как можно обработать случай с "type" = 4 с тем же классом (или как мне написатьдругой модельный класс)

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

возможно, вы можете попробовать это

public class LoginResponse {
@SerializedName("type")
public int type;
@SerializedName("user")
public User user;

public class User {
    @SerializedName("stud_id")
    public int stud_id;
    @SerializedName("stud_reference_id")
    public String stud_reference_id;


    @SerializedName("coord_id");
    public int coord_id;
    @SerializedName("coord_login_id");
    public int coord_login_id;
    @SerializedName("coord_name")
    public String coord_name;

}
}

, если найденные данные хранятся в переменной ... в противном случае в этом поле хранятся нулевые данные .... вам нужно всегда проверять, что данные нулевые или нетесли stud_id обнаружил, что это store ... иordin_id это ноль ... иначе, если crood_id найден, что время stud_id равно нулю

0 голосов
/ 26 мая 2018

Поскольку ваши JSON имеют разные имена ключей, я предлагаю вам использовать Map вместо:

public class YourPojo {
    private int type;
    private Map<String, String> user;
}

Основываясь на type, вы должны знать, какое User вы получили из ответа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...