Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 序列化映射<;LocalDate,对象>;使用Ktor和kotlinx.serialization_Json_Kotlin_Ktor_Kotlinx.serialization - Fatal编程技术网

Json 序列化映射<;LocalDate,对象>;使用Ktor和kotlinx.serialization

Json 序列化映射<;LocalDate,对象>;使用Ktor和kotlinx.serialization,json,kotlin,ktor,kotlinx.serialization,Json,Kotlin,Ktor,Kotlinx.serialization,下面是一个Ktor路由,它返回LocalDates的映射: route { get { val map = mapOf(LocalDate.now() to "test") call.respond(map) } } LocalDate不可序列化,但是: kotlinx.serialization.SerializationException: Can't locate argument-less serializer for class LocalDa

下面是一个Ktor路由,它返回LocalDates的映射:

route {
   get {
       val map = mapOf(LocalDate.now() to "test")
       call.respond(map)
   }
}
LocalDate不可序列化,但是:

kotlinx.serialization.SerializationException: Can't locate argument-less serializer for class LocalDate. For generic classes, such as lists, please provide serializer explicitly.
我已经构建了自己的序列化程序:

@Serializer(forClass = LocalDate::class)
object LocalDateSerializer : KSerializer<LocalDate> {
    override fun serialize(encoder: Encoder, value: LocalDate) {
        encoder.encodeString(value.toString())
    }

    override fun deserialize(decoder: Decoder): LocalDate {
        return LocalDate.parse(decoder.decodeString())
    }
}
我试着在Ktor注册过:

install(ContentNegotiation) {
    json(module = serializersModuleOf(LocalDate::class, LocalDateSerializer))
}
无论我尝试什么,我都会得到与上面相同的
SerializationException


当kotlinx.serialization尝试解析LocalDate时,如何自动应用序列化程序?或者,当Ktor尝试序列化我的映射时,我如何建议序列化程序?

您好,不幸的是,Ktor中似乎还不支持此功能。我提交了一个问题:。欢迎继续讨论。
install(ContentNegotiation) {
    json(module = serializersModuleOf(LocalDate::class, LocalDateSerializer))
}