Size: a a a

Android Developers

2021 February 03

D

Denis in Android Developers
Quantum Harmonizer
не знаю, что имел в виду автор, но Gson в любом случае про котлин ничего не знает
Т.е. ты хочешь сказать, что при переводе json в pojo с нуллабельным полем выкинет эксепшн, если в json нет этого  поля? Или что должно произойти?
источник

D

Denis in Android Developers
Valentin Sergeev
Хранить JSON  в XML файле?)
В чем проблема?
источник

QH

Quantum Harmonizer in Android Developers
Denis
Т.е. ты хочешь сказать, что при переводе json в pojo с нуллабельным полем выкинет эксепшн, если в json нет этого  поля? Или что должно произойти?
не, там наоборот, вот как в пересылке выше
источник

VS

Valentin Sergeev in Android Developers
danilshik
Переслано от danilshik
нашел. Как я понял для copy используются все поля класса.

У меня указан

@SerializedName("group")
   val group: String = "",

С backend прилетел Null.

Почему Gson его пропустил?
Тут еще прикол в том, то GSON не вызывает констукторы, поэтому property intializers (как и init блоки) не вызываюстя
источник

QH

Quantum Harmonizer in Android Developers
Denis
В чем проблема?
в том, что каждая " превращается в ", например
источник

D

Denis in Android Developers
Quantum Harmonizer
в том, что каждая " превращается в ", например
И при чтении вернет обратно
источник

VS

Valentin Sergeev in Android Developers
Denis
И при чтении вернет обратно
Файл от этого меньше не станет
источник

d

danilshik in Android Developers
Valentin Sergeev
Тут еще прикол в том, то GSON не вызывает констукторы, поэтому property intializers (как и init блоки) не вызываюстя
Я конечно может ошибаюсь, скорее всего, но почему в data class он вместо значения по умолчанию прокинул null, хотя он не может быть Nullable?
источник

QH

Quantum Harmonizer in Android Developers
Denis
И при чтении вернет обратно
да, но память дофига улетит. Проще в файл.
источник

QH

Quantum Harmonizer in Android Developers
danilshik
Я конечно может ошибаюсь, скорее всего, но почему в data class он вместо значения по умолчанию прокинул null, хотя он не может быть Nullable?
потому что гсон ничего не знает про значения по умолчанию (и не нужно вмешивать сюда дата-классы)
источник

VS

Valentin Sergeev in Android Developers
danilshik
Я конечно может ошибаюсь, скорее всего, но почему в data class он вместо значения по умолчанию прокинул null, хотя он не может быть Nullable?
Потому что он ничего не знает про non-null типы)
источник

SG

Sergey Grieg in Android Developers
Valentin Sergeev
Вы путаете SharedPreferences и Bundle
Ой, точно
источник

SG

Sergey Grieg in Android Developers
Пардон
источник

d

danilshik in Android Developers
Valentin Sergeev
Потому что он ничего не знает про non-null типы)
а Moshi знает?
источник

D

Denis in Android Developers
ну так поэтому и спрашивали за размер pojo. Если объект не большой - то в чем проблема?
источник

VS

Valentin Sergeev in Android Developers
danilshik
а Moshi знает?
Не могут ответить, я мазохист и юзаю GSON пока
источник

D

Denis in Android Developers
Quantum Harmonizer
потому что гсон ничего не знает про значения по умолчанию (и не нужно вмешивать сюда дата-классы)
gson оставляет значения по-умолчанию если не найдет эти поля в json...
источник

V

Vladimir in Android Developers
danilshik
а Moshi знает?
Знает
источник

QH

Quantum Harmonizer in Android Developers
Denis
gson оставляет значения по-умолчанию если не найдет эти поля в json...
только если есть конструктор без параметров
источник

SG

Sergey Grieg in Android Developers
Quantum Harmonizer
только если есть конструктор без параметров
Кст да, важный момент. При том если в JSON прилетит null в этом поле — у тебя будет exception, если тип данных не будет nullable (String?). Если поля не будет — будет оставлено значение по умолчанию (у тебя это пустая строка)
источник