1 // This file was automatically generated from polymorphism.md by Knit tool. Do not edit. 2 package example.examplePoly18 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 7 import kotlinx.serialization.modules.* 8 9 @Serializable 10 abstract class Project { 11 abstract val name: String 12 } 13 14 @Serializable 15 @SerialName("OwnedProject") 16 data class OwnedProject(override val name: String, val owner: String) : Project() 17 <lambda>null18val module = SerializersModule { 19 polymorphic(Project::class) { 20 subclass(OwnedProject::class) 21 } 22 } 23 <lambda>null24val format = Json { serializersModule = module } 25 mainnull26fun main() { 27 println(format.decodeFromString<Project>(""" 28 {"type":"unknown","name":"example"} 29 """)) 30 } 31