无零点的Gson变换器

nx7onnlm  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(139)

我有两个API,其中一个向我发送了一个Appointment对象,其主体如下所示

data class Appointment(
    id:Long = 4,
    name:String = "name"
   ...
)

而另一个人应该从我这里得到这个身体

{
   name:"name"
}

如果Kotlin代码中没有id字段,我想将Id设置为空,Gson应该忽略它,因为它是空的。如何做到这一点?如何将kotlin类转换为没有空值的json

hxzsmxv2

hxzsmxv21#

默认情况下,Gson会跳过null值。假设您有一个ID可以为null的Appointment类:

data class Appointment(
    val id: Long?,
    val name: String,
)

如果id为null,则它不会出现在json:

val gson = Gson()
gson.toJson(Appointment(null, "hello")) // => {"name":"hello"}

如果你想序列化空值,可以使用gson builder中的serializeNulls()方法:

val gson = GsonBuilder().serializeNulls().create()
gson.toJson(Appointment(null, "hello")) // => {"id":null,"name":"hello"}

相关问题