【问题标题】:Moshi ignore field in KotlinMoshi 忽略 Kotlin 中的字段
【发布时间】:2018-05-02 06:43:57
【问题描述】:

我想知道在使用 Moshi 时如何忽略 Kotlin 类字段。

我找到了 Java 的这个答案 (Moshi ignore field),这表明使用关键字transient 如下

private transient String your_variable_name;

但我找不到在 Kotlin 中完成这项工作的正确方法。

【问题讨论】:

    标签: json kotlin serialization moshi


    【解决方案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
    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 2018-05-20
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    相关资源
    最近更新 更多