Trying to write a websocket app where the type of data is determined by event,
I found help with polymorphic serialization but couldnot find deserialization
interface WSEvent { val event: String } interface WSData<T> { val data: T } @Serializable data class WSMessage<T>(override val event: String, override val data: T) : WSEvent, WSData<T> fun getWSEvent(data: String): String { return Json.decodeFromString<WSEvent>(data).event } fun <T> getWSData(data: String): T { wsJson.decodeFromString<WSData<T>>(PolymorphicSerializer(WSData::class), data).data return Json.decodeFromString<WSData<T>>(data).data }
i get the following error:
kotlinx.serialization.json.internal.JsonDecodingException: Polymorphic serializer was not found for missing class discriminator (‘null’)
JSON input: {“event”:”validate”,”data”:””}
submitted by /u/ayushshrestha8920
[link] [comments]