Привет, я столкнулся с проблемой при сериализации карты, где ключ - это пользовательский класс.
data class KeyClass(val id: Int, val name: String) {
fun toJSON() = "\"KeyClass\": {\"id\":$id,\"name\":\"$name\"}"
}
Призвание:
fun method(): Map<KeyClass, List<Something>> = ...
Мой Джексон Сериализатор 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 сериализуется правильно, а ключ - нет.