android - 如何使用Algolia使用ArrayList <String>和Date类型的KotlinX序列化

标签 android kotlin kotlinx.serialization instantsearch instantsearch-android

我正在尝试将Algolia的kotlinx serialization用于ArrayList<String>Date类型,但是我无法弄清serialization技术。任何指针,因为我采取了Algolia不推荐的手动方式。

最佳答案

Check this one

kotlinx.serialization


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/

相关文章:

Kotlin - 无法序列化多态类。未找到序列化器

android - 如何从 WebView 获取可点击的选中文本

java - JSch 的公钥身份验证失败,但使用相同的 key 与 OpenSSH 一起使用

kotlin - Mongo 和 Kotlin 的委托(delegate)问题

java - 我对 abiFilters 配置有疑问

kotlin - 尝试将 Jacoco 代码覆盖率导入 SonarQube 时出现问题 : Cannot import coverage information for file, 覆盖率数据无效

android - kotlinx.serialization : How to parse to different varaiable name than the exact name of JSON key

Android KeyBoard.Key 禁用特殊键的 iconPreview?

java - 尝试启动服务时无法找到显式 Activity 类

android - 使用默认来电屏幕调用假电话