我正在为许多第三方API生成JSON。其中许多接受不同对象的列表(JSON数组),但是由于列表的多态性,它们都不接受由kotlinx序列化自动生成的"type": "com.mycom.someclass"
。
在我的用例中,我只关心序列化。不需要反序列化。
当前:
[{"type":"com.mycom.Child1","x":"child1"}, {"type":"com.mycom.Child2","y": 23}]
需要:
[{"x":"child1"}, {"y": 23}]
如何禁用这种自动行为?
答案 0 :(得分:2)
看看Json parametric polymorphic deserialization:
您还可以使用此类序列化器序列化数据。在这种情况下,将在运行时为实际属性类型选择已注册或默认的序列化程序。 不会添加任何类别标识符。
您需要使用JsonParametricSerializer
并手动选择序列化程序。由于您不需要支持反序列化,因此实现起来很简单。