ruwinmike
08/24/2021, 4:22 PMprivate fun test() {
val string = """{ "type": "a", "value": "Hello"}"""
val result = Json.decodeFromString(Test.serializer(), string)
println(">>> result $result")
}
@Serializable
sealed class Test {
abstract val type: String
@SerialName("a")
@Serializable
data class A(
override val type: String,
val value: String
) : Test()
}
но можно переопределить type на другое значение? Пытаюсь вот так вот
private fun test() {
val string = """{ "fieldType": "a", "value": "Hello"}"""
val result = Json.decodeFromString(Test.serializer(), string)
println(">>> result $result")
}
@Serializable
sealed class Test {
@SerialName("fieldType")
abstract val type: String
@SerialName("a")
@Serializable
data class A(
override val type: String,
val value: String
) : Test()
}
Но получаю ошибку Polymorphic serializer was not found for missing class discriminator ('null')
private val json = Json {
classDiscriminator = "fieldType"
}