使用 gson 从序列化/反序列化中排除 Kotlin 数据类属性/字段

idr*_*mbi 7 gson kotlin retrofit2

我正在尝试使用 gson 从反序列化中排除 Kotlin 属性。我尝试了不同的方法,从注释属性@Transient到创建自定义注释策略(当然是在 gson 构建器中指定策略),但似乎没有任何效果,因为属性一直为 null 而不是我初始化属性的值.

我没有尝试使用@Expose注释,但我不想用@Expose

拜托,我怎样才能使用 gson + Kotlin 实现这一目标?

小智 8

@Transient 为我工作。

@Transient lateinit var bar: SomeCustomType
Run Code Online (Sandbox Code Playgroud)

根据@Transient 定义:

将带注释的属性的 JVM 支持字段标记为transient,这意味着它不是对象的默认序列化形式的一部分。


Ser*_*kin 2

data class Foo (
    @Expose(deserialize = false) val bar: Bar
)
Run Code Online (Sandbox Code Playgroud)