I'm using Enums a fair amount in my (data class) model properties in commonMain (Kotlin MPP). I'm trying to serialize them to JSON. I get the following error when doing so:
Enums cannot be serialized polymorphically with 'type' parameter. You can use 'JsonBuilder.useArrayPolymorphism' instead
My serialization is set up as follows:
val JSON = Json {
ignoreUnknownKeys = true
encodeDefaults = true
explicitNulls = false
}
My enums follow this kind of pattern:
@Serializable
@JsonClassDiscriminator("ItemProperty")
sealed interface ItemProperty {
@Serializable
@SerialName("ArmorProperty")
enum class ArmorProperty : ItemProperty {
@SerialName("Light") Light,
@SerialName("Medium") Medium,
@SerialName("Heavy") Heavy,
@SerialName("Shield") Shield;
}
@Serializable
enum class FocusProperty : ItemProperty {
@SerialName("Arcane") Arcane,
@SerialName("Druidic") Druidic,
@SerialName("HolySymbol") HolySymbol;
}
}
I cannot find anything except a really simple enum example in the serialization documentation.
Does anyone know what I'm doing wrong here? I am unsure what ``JsonBuilder.useArrayPolymorphism` ` is or how to use it to resolve this issue.