Sealed interface serialisation seem to be broken u...
# getting-started
m
Sealed interface serialisation seem to be broken unless explicitly registered. Am I missing something?
Copy code
import kotlinx.serialization.*
import kotlinx.serialization.json.Json
import kotlin.test.Test

sealed interface iFoo {
    @Serializable
    @SerialName("a")
    class A() : iFoo//Foo(),
}

class EventTest {
    @Test
    fun testKotlinLang() {
//        // this works
//        val json = Json { serializersModule = SerializersModule {
//                polymorphic(iFoo::class) {
//                    subclass(iFoo.A::class, iFoo.A.serializer())
//                } } }

        val json = Json

        val a = iFoo.A() as iFoo
        val s = json.encodeToString(a)
        val a1: iFoo = json.decodeFromString(s)
    }
}
1
p
Not missing anything, it's not implemented yet: https://github.com/Kotlin/kotlinx.serialization/issues/1417 Also, #serialization is a good reference for kotlinx-serialization questions
1
m
Thank you 🙂