【发布时间】:2021-05-25 19:44:11
【问题描述】:
如何区分
{data: null} 和 {} 在 kotlinx.serialization 中反序列化 JSON 时?
@Serializable
class MyClass(val data: String?)
【问题讨论】:
-
您的意思是您正在接收这种 JSON,并且您想在 Kotlin 中以一种可以区分的方式表示它?
-
您的代码示例甚至不会在第二种情况下运行,因为
data不是可选的。您需要设置一个默认值,如果data不存在并且这就是您的答案,则将使用该默认值。 -
@Joffrey,这正是我想要的
-
前段时间我正在研究完全相同的问题,不幸的是,如果没有一些 hack,kotlinx.serialization 并不能真正支持它:-( 你总是可以编写自己的序列化程序或执行以下操作:
const val UNDEFINED = "<random>"然后将你的道具声明为:val data: String? = UNDEFINED。 -
无论如何你都可以使用parseToJsonElement 方法——它会为这些JSON返回不同的对象
标签: json kotlin kotlinx.serialization