我正在尝试将Algolia的kotlinx serialization
用于ArrayList<String>
和Date
类型,但是我无法弄清serialization
技术。任何指针,因为我采取了Algolia
不推荐的手动方式。
最佳答案
Check this one
import kotlinx.serialization.*
import kotlinx.serialization.internal.*
import java.util.*
@Serializable
class DateWrapper(val date: Date)
@Serializer(forClass = Date::class)
object DateSerializer: KSerializer<Date> {
private val df: DateFormat = SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS")
override fun save(output: KOutput, obj: Date) {
output.writeStringValue(df.format(obj))
}
override fun load(input: KInput): Date {
return df.parse(input.readStringValue())
}
override val serialClassDesc: KSerialClassDesc = SerialClassDescImpl("Date")
}
Register it at startup of your application:
kotlinx.serialization.registerSerializer("java.util.Date", DateSerializer)
JSON.stringify(DateWrapper(Date()))
将为您提供{“date”:[“Date”,“10/11/2019 12:50:10.665”]}
关于android - 如何使用Algolia使用ArrayList <String>和Date类型的KotlinX序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59781330/