Почему аннотация Gson @Expose не работает должным образом? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть класс модели, который заполняется ответом сервера gson. фабрика конвертеров gson:

Retrofit.Builder().addConverterFactory(GsonConverterFactory.create())

В моей модели есть переходное поле для предотвращения сериализации / десериализации с помощью gson.

data class Testy( 
     val id:Int = 1,
     @Transient var isShowing:Boolean = true
):Serializable

после получения ответа сервера и получения преобразованного объекта gson значение поля isShowing равно false, тогда как ожидалось, что оно будет true (в качестве значения инициализации).

Обходной путь

Я использовал приведенные ниже способы, но не получил желаемое поведение:

  1. с использованием @Expose(serialize = false, deserialize = false) вместо @ Transient
  2. как упомянуто здесь добавление GsonBuilder.excludeFieldsWithModifiers(Modifier.TRANSIENT)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...