kotlin
kotlin {
sourceSets {
val main by getting {
serialization {
version = "1.2.0"
}
}
}
}
kotlin
val json = Json {
serializersModule = module {
contextual(YourDataClass::class, YourSerializer)
}
}
object YourSerializer : SerializationCustomSerializer<YourDataClass>(YourDataClass.serializer()) {
private val cache = mutableMapOf<String, YourDataClass>()
override fun load(input: DeserializationInput): YourDataClass {
val key = input.decodeString()
return cache.getOrPut(key) {
YourDataClass(key)
}
}
}