Назад к вопросам
Junior — Middle
68
Как исключить конкретное поле из процесса сериализации или генерации объекта в data class?
Компании, где спрашивали
ПСБ
Ответ от нейросети
sobes.tech AI
В Kotlin data class, чтобы исключить конкретное поле из сериализации (например, при использовании Gson или Moshi), можно использовать аннотации, которые игнорируют это поле. Например, для Gson применяется @Transient или @Expose(serialize = false, deserialize = false).
Пример с @Transient:
data class User(
val name: String,
@Transient val password: String // это поле не будет сериализовано
)
Поле с аннотацией @Transient не попадёт в сериализованный JSON и не будет учитываться при генерации объекта из JSON.
Если используется Jackson, то можно применить аннотацию @JsonIgnore:
import com.fasterxml.jackson.annotation.JsonIgnore
data class User(
val name: String,
@JsonIgnore val password: String
)
Таким образом, выбор аннотации зависит от используемой библиотеки сериализации.