I'm generating JSON for a number of third-party APIs. Many of them accept a list (JSON array) of different objects, however, none of them will accept the "type": "com.mycom.someclass"
automatically generated by kotlinx serialization due to the polymorphic nature of the list.
In my use-case, I only care about serializing out. No deserialization is needed.
Current:
[{"type":"com.mycom.Child1","x":"child1"}, {"type":"com.mycom.Child2","y": 23}]
Needed:
[{"x":"child1"}, {"y": 23}]
How can I disable this automatic behavior?
Take a look at Json parametric polymorphic deserialization:
You also can serialize data with such serializer. In that case, either registered or default serializer would be selected for the actual property type in runtime. No class discriminator would be added.
You'll need to impelement JsonParametricSerializer
and manually select the serializer. As you don't need to support deserialization, the implementation would be trivial.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With