【发布时间】:2019-04-04 09:45:12
【问题描述】:
您好,我遇到了 key 是自定义类的 map 序列化问题。
data class KeyClass(val id: Int, val name: String) {
fun toJSON() = "\"KeyClass\": {\"id\":$id,\"name\":\"$name\"}"
}
调用:
fun method(): Map<KeyClass, List<Something>> = ...
我的 jackson Serializer ofc 我还将它作为模块添加到 objectMapper 中:
class KeyClassSerializer : JsonSerializer<KeyClass>() {
override fun serialize(value: KeyClass, gen: JsonGenerator, serializers: SerializerProvider) {
gen.writeRawValue(value.toJSON())
}
}
class KeyClassSerializerModule : SimpleModule() {
init {
addKeySerializer(KeyClass::class.java, KeyClassSerializer())
}
}
我收到的 JSON 是:
"\"KeyClass\": {\"id\":1,\"name\":\"Thomas\"}" : [Something:...]
我的意思是 map 的值被正确序列化,但 key 不是。
【问题讨论】:
-
你期望的结果是什么?
标签: json spring spring-boot kotlin jackson