Есть ли способ различить guish между Successful
и Failed
ответами на основе значения поля ok
в ответе JSON?
@Serializable
sealed class Response {
@Serializable
data class Successful(
@SerialName("ok")
val ok: Boolean,
@SerialName("payload")
val payload: Payload
) : Response()
@Serializable
data class Failed(
@SerialName("ok")
val ok: Boolean,
@SerialName("description")
val description: String
) : Response()
}
Итак , для {"ok":true, "payload":…}
я хочу получить Successful
класс, а для {"ok":false, "description":…}
- Failed
.
Я знаю, что есть похожий вопрос - Десериализация в запечатанный подкласс на основе значения поля - но он использует поле type
, и у меня нет никаких дискриминаторов типов в JSON (значение из ok
не является распознаванием типов (хотя может использоваться, что кстати с некоторыми взломами, наверное))