Florian Magin
01/11/2022, 3:07 PMInteger -> User
when I instantiate the JSON deserializer. Is there such a functionality already available?Florian Magin
01/11/2022, 3:30 PMDateAsLongSerializer
that captures the required information for the Integer -> User
conversion
private val module = SerializersModule {
contextual(DateAsLongSerializer)
}
Dominaezzz
01/11/2022, 3:59 PMFlorian Magin
01/11/2022, 4:29 PMFlorian Magin
01/11/2022, 4:31 PMfun importData(database: UserDB, data: String) {
return Json.decodeFromString(SomeClassContainingUserFields.serializer(), data)
}
Florian Magin
01/11/2022, 4:32 PMInteger -> User
conversion"Dominaezzz
01/11/2022, 4:35 PMDominaezzz
01/11/2022, 4:35 PMFlorian Magin
01/21/2022, 11:52 AMval DB = ...
val module = SerializersModule {
contextual(object: KSerializer<User> {
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("User", PrimitiveKind.LONG)
override fun serialize(encoder: Encoder, value: User) = encoder.encodeLong(value.id)
override fun deserialize(decoder: Decoder): User = DB.getUser(decoder.decodeLong())
})
}
val json = Json {
serializersModule = module
}
Dominaezzz
01/21/2022, 12:12 PMFlorian Magin
01/21/2022, 12:16 PMFlorian Magin
01/21/2022, 12:28 PM@Contextual
fields and deserializing requires 5-10 contextual Serializers for various types?Dominaezzz
01/21/2022, 12:31 PMFlorian Magin
01/21/2022, 12:31 PMDominaezzz
01/21/2022, 12:31 PMFlorian Magin
01/21/2022, 12:32 PMFlorian Magin
01/21/2022, 12:33 PM0x1000
in memory. The python application exports this is addr: 0x1000
in the JSON (and uses a python variable with an int value internally), but the application I am importing this into has a dedicated Address
object.Florian Magin
01/21/2022, 12:36 PMfunc_addr: 0x2000
and those could be serialized into the dedicated Function
object the application has.Florian Magin
01/21/2022, 12:38 PMDominaezzz
01/21/2022, 12:41 PMFlorian Magin
01/21/2022, 12:44 PM{ user_id: 42 }
to the dataclass
data class User(val user_id: Int, val user: User)
Dominaezzz
01/21/2022, 12:53 PM