【发布时间】:2020-10-15 10:33:18
【问题描述】:
我有一堂课:
data class Stam(@SerializedName("blabla") val blabla: String = "")
我想做gson.fromJson("{\"blabla\":null}", Stam::class.java)
但是,它会失败,因为 blabla 不可为空。
我想这样做,所以如果 gson 无法反序列化某个变量,它将采用我给它的默认值。
如何实现?
【问题讨论】:
-
你试过这个解决方案吗? stackoverflow.com/questions/30216317/…
-
@nt95 我不认为那里提出的解决方案在 kotlin 中是可以接受的,您需要将 val 声明为可空
String?。我会尝试做的(不确定它是否会起作用)是将blabla设置为String,但创建一个可为空的设置器,并将默认设置保留在那里,getter(不需要生成它)和 val本身仍然是非空的。至于在纯 Gson 中实现,不知道,我为 json 对象使用了另一个库。 -
你能做同样的事情并取消引号吗?