Moshi 忽略 Kotlin 中的字段
Posted
技术标签:
【中文标题】Moshi 忽略 Kotlin 中的字段【英文标题】:Moshi ignore field in Kotlin 【发布时间】:2018-05-02 06:43:57 【问题描述】:我想知道在使用 Moshi 时如何忽略 Kotlin 类字段。
我找到了 Java 的这个答案 (Moshi ignore field),这表明使用关键字transient 如下
private transient String your_variable_name;
但我找不到在 Kotlin 中完成这项工作的正确方法。
【问题讨论】:
【参考方案1】:使用@Transient
注释。
@Transient
private val your_variable_name: String
文档在这里:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-transient/index.html
【讨论】:
像魅力一样工作。谢谢!! 当 JSON 响应中没有预期的字段时,这不起作用。 另外,请确保提供默认值。否则,它可能会引发错误。【参考方案2】:Kotlin + 改造 + Moshi
如果您想有条件地忽略字段,可以将其设置为 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"
【讨论】:
即:@Transient @Json(name= "snow") val snowVolume: Int? = null
以上是关于Moshi 忽略 Kotlin 中的字段的主要内容,如果未能解决你的问题,请参考以下文章
在 Kotlin 中使用 Moshi 和 Retrofit 解析具有增量对象名称的 JSON