Пользовательский сериализуемый JSON для разных типов ответов - PullRequest
0 голосов
/ 26 августа 2018

Ответы сервера всех моих API-интерфейсов имеют следующий формат:

{
"code":200,
"status":"success",
"response": {/*different type of responses in all APIs*/}
}

{
"code":200,
"status":"success",
"response": [/*different type of responses in all APIs*/]
}

Я создал класс для ответа:

public class Response {
    @SerializedName("code")
    int code;
    @SerializedName("status")
    String status;
    @SerializedName("response")
    String response;
}

Как я могу получить различный видответы в переменной ответа?

1 Ответ

0 голосов
/ 26 августа 2018

Используйте универсальный для вашего ответного сообщения:

public class Response<T> {
    @SerializedName("code")
    int code;
    @SerializedName("status")
    String status;
    @SerializedName("response")
    T response;
}

Ваш ответ с соответствующей моделью данных, подобной этой:

Response<List<DataModel>>, Response<DataModel>, etc...

Преобразовать с Gson:

Type type = new TypeToken<Response<T>>(){}.getType();
Response<T> response = new Gson().fromJson(json, type);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...