zt
05/28/2022, 1:15 PMcompanion object Serializer : JsonContentPolymorphicSerializer<Renderer>(Renderer::class) {
override fun selectDeserializer(element: JsonElement) = when {
"slimVideoMetadataSectionRenderer" in element.jsonObject -> SlimVideoMetadataSectionRenderer.serializer()
"itemSectionRenderer" in element.jsonObject -> RelatedItemsRenderer.serializer()
"shelfRenderer" in element.jsonObject -> ShelfRenderer.serializer()
else -> throw NoWhenBranchMatchedException()
}
}
though how would I make it serialize using the object inside of the key?ephemient
05/28/2022, 2:21 PMzt
05/28/2022, 4:39 PMephemient
05/28/2022, 4:41 PMJsonContentPolymorphicSerializer
approach will attempt to deserialize {"slimVideoMetadataSectionRenderer": "**", "*a*": "**", "b": "*"}
for a data class SlimVideoMetadataSectionRenderer(val a: String, val b: String)
and will serialize to a {"a": "*", "b": "*"}