Narek Mailian
08/03/2020, 7:46 PMCasey Brooks
08/03/2020, 7:58 PM@Polymorphic
to the base type/interface will enable similar behavior as well, allowing you to use that base class’s serializer with the sub-types registered in a serializers module
@Serializable
@Polymorphic <-- this is the key
abstract class BaseResponse
@Serializable
class Response1 : BaseResponse()
@Serializable
class Response2 : BaseResponse()
val polymorphicJson = Json(
configuration = JsonConfiguration(
),
context = SerializersModule {
polymorphic(BaseResponse::class) {
Response1::class with Response1.serializer() // 3
Response2::class with Response2.serializer() // 4
}
}
)
val parsed = polymorphicJson.parse(BaseResponse.serializer(), "...")
Narek Mailian
08/04/2020, 7:16 AM