Ivan Pavlov
09/12/2020, 4:45 AMkotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 15: Expected '[, kind: SEALED'
JSON input: {
"place":{
"type":"point",
"lon":22.0,
"lat":56.7
}
}
Routing looks like that:
post("/") {
val body = call.receive<AddVisitDataDto>()
call.respond(body.toString())
}
My model:
@kotlinx.serialization.Serializable
data class AddVisitDataDto(
val place: PlaceDto
)
@kotlinx.serialization.Serializable
sealed class PlaceDto {
@kotlinx.serialization.Serializable
@SerialName("external")
data class External(val externalId: String) : PlaceDto()
@kotlinx.serialization.Serializable
@SerialName("point")
data class Point(val lon: Double, val lat: Double) : PlaceDto()
}
When I change receiving to the following code it works fine:
val text = call.receiveText()
val body = Json.decodeFromString<AddVisitDataDto>(text)
I tried to add @Polymorphic
to place
property but it only changes error to
kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 15: Expected '[, kind: OPEN'
Am I doing something wrong?Ivan Pavlov
09/12/2020, 9:36 AM{
"place": [
"point",
{
"lon": 22.0,
"lat": 56.7
}
]
}