Sobes.tech
Назад к вопросам
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
)

Таким образом, выбор аннотации зависит от используемой библиотеки сериализации.