Страницы

Поиск по вопросам

понедельник, 23 декабря 2019 г.

Retrofit. Неизвестный тип поля

#android #kotlin #retrofit


Не могу понять, как обработать такие ответы от сервера:

{ "id":1 "value":false }
{ "id":1 "value":"text"}
{ "id":1 "value":12345 }


Эти ответы могут быть от одного и того же метода.
Как в этом случае я должен создать класс модели, при условии, что эта модель должна
будет реализовать интерфейс Parcelabe?

Язык - Kotlin
    


Ответы

Ответ 1



Если вы привели все возможные типы данных в поле, то можно указывать тип для value как String. После надо будет вручную проверять на этапе исполнения в какой тип можно распарсить значение. Если там может быть ещё и массив - то тип должен быть Any. А самое правильное решение - объяснить людям, пишущим сервер, что на вашей стороне - статически типизируемый язык и вы не можете комфортно парсить такие структуры данных в отличие от php, js, python. Чтобы вам было комфортно на бэке должны добавить поле в ответ, в коем будет содержаться тип значения value - тогда вы сможете написать адаптер для парсинга JSON который будет в зависимости от значения парсить в одну или другую модель данных.

Комментариев нет:

Отправить комментарий