Моши игнорирует поле в Котлине

Я хочу знать, как игнорировать поле класса Kotlin при использовании Moshi.

Я нашел этот ответ для Java (поле игнорирования Moshi), который указывает на использование ключевого слова transient как следует

private transient String your_variable_name;

Но я не могу найти правильный способ сделать это в Котлине.


person heisen    schedule 18.11.2017    source источник


Ответы (2)


Используйте аннотацию @Transient.

@Transient
private val your_variable_name: String

Документ здесь: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-transient/index.html

person marstran    schedule 18.11.2017
comment
Работает как шарм. Спасибо!! - person heisen; 18.11.2017
comment
Это не работает, когда ожидаемые поля не приходят в ответ JSON. - person M.Noman; 09.11.2018
comment
Кроме того, убедитесь, что вы указали значение по умолчанию. В противном случае он может выдать ошибку. - person Dhruv Sangvikar; 21.06.2019

Котлин + Модернизация + Моши

Если вы хотите условно игнорировать поля, вы можете установить для него значение null.

data class  User(var id: String,  var name: string?)

val user = User()
user.id = "some id"
user.name = null

Сгенерированный Json будет

user{
"id": "some id"
}
person Bellan    schedule 09.05.2019