Я сталкиваюсь с какой-то неизвестной ошибкой. Это нарушает мое предположение о нулевой безопасности с Kotlin классом данных и ответами Api.
Скажем, у меня есть класс данных, скажем Person
:
data class Person(val name: String) {
constructor() : this("")
}
Это создаст объект Человек со значением имени по умолчанию, то есть ненулевым. Ранее, когда я использую модифицированный клиент по умолчанию с GsonConverterFactory.create()
(добавлено как фабрика конвертеров). В режиме по умолчанию Gson не сериализует нулевое значение. Но сегодня я узнал, что поле сериализуется в ноль.
Я точно такой же в ReflectiveTypeAdapterFactory
https://github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/internal/bind/ReflectiveTypeAdapterFactory.java#L206
Здесь экземпляр значение имеет ненулевое поле, но после прочтения каждого поля (field.read(in, instance);
) оно присваивает нулевое значение. Я ожидаю, что нулевые значения будут пропущены во время сериализации или это десериализация?
Редактировать: Похоже, что десериализация нулей не сериализует проблему нуля. Справка: https://github.com/google/gson/issues/1148
Дайте мне знать, если какие-либо детали отсутствуют или создают путаницу.