1. 在文件开始时增加:
@file:UseSerializers(YourSerializerClass::class)
2. 自定义具体的序列化器,例如我们需要序列化LocalDate
object YourSerializerClass: KSerializer<LocalDate> {
override fun serialize(encoder Encoder, value: LocalDate) {
encoder.encodeString(xxx)
}
override fun deserialize(decoder: Decoder): LocalDate {
return LocalDate
}
}
3. 这样就能够序列化自己的类了:
@Serializable
data class SomeDataClass (
val attr1: Strings = null,
val attr2: LocalDate? = null // 可以被序列化,因为已经定义和使用了YourSerializerCLass
)