【发布时间】:2021-12-30 10:35:05
【问题描述】:
我有一个包含多态对象列表的 json,
{
"someList": [
{ "type": "A", "value": {"aProp": false } },
{ "type": "B", "value": {"bProp": "1" } },
]
}
代表一个像这样的类型层次结构:
sealed class Base
class A(val aProp: Boolean): Base()
class B(val aProp: String): Base()
class BaseList(val someList: List<Base>)
我想把 JSON 反序列化成这样的类型,
但默认的 seales/polymorphic kotlinx 序列化程序会在对象本身中读取和写入鉴别器,如下所示:
{
"someList": [
{ "type": "A", "aProp": false },
{ "type": "B", "bProp": "1" }
]
}
虽然我在对象本身之外得到了鉴别器。
如何将这样的 JSON 反序列化到这个 Kotlin 类型层次结构中?
【问题讨论】:
-
你的意思是写
class B(val bProp: String): Base()吗? -
第一个 JSON 对象是如何创建的?
-
@Diggi55 来自另一种语言和框架(快速序列化)
标签: kotlin kotlinx.serialization