Модель данных Android только с теми полями, которые мне нужны - PullRequest
0 голосов
/ 05 июня 2019

Если я использую Retrofit и модель данных. Должна ли модель данных иметь все поля, которые возвращает API? Мне нужны только некоторые поля.

Ответы [ 3 ]

3 голосов
/ 05 июня 2019

Нет, вам не нужно писать все поля, которые возвращает API. Вы можете написать только те поля, которые вы хотите, и оставить остальные как есть.

Кроме того, в качестве примечания не забудьте добавить аннотации к переменным модели, используя @SerializedName("key"), чтобы разрешить Serialization и deserialising объектов, что нужно учитывать при работе с API.

1 голос
/ 06 июня 2019

Не требуется, если значения не нужны, просто не добавляйте их.Однако, если они приходят или нет в ответе, вы можете использовать обнуляемый оператор (?) Из kotlin, так что вы можете справиться с ним, когда он придет или нет.В этом примере, если телефон присутствует в ответе, он анализируется.И если его нет, он не анализируется.Если вы не пользуетесь (?) Оператором, а телефона нет, его выдает и исключение.

data class AdMessage(@SerializedName("body") val message: String,
                          @SerializedName("email") val email: String,
                          @SerializedName("name") val name: String,
                          @SerializedName("phone") val phone: String?)
1 голос
/ 05 июня 2019

Нет, это не требование.Если вам нужно только одно поле, просто объявите одно поле, и только это поле получит его значение.Тем не менее, вы должны отметить, что объявление только некоторого поля не означает, что вы получите только значение этих полей.Вы получите все поля, но конвертер Gson создаст для вас компактный Java-объект

...