mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 03:44:54 -04:00
Adding KeyDeserializers and KeySerializers to attempt to fix Jackson mapping error
This commit is contained in:
parent
a2b04a0350
commit
75e262e292
@ -13,6 +13,7 @@
|
||||
|
||||
package de.bixilon.minosoft.config.profile
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.fasterxml.jackson.databind.type.MapType
|
||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||
import de.bixilon.kutil.collections.CollectionUtil.lockMapOf
|
||||
@ -40,6 +41,7 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
||||
import de.bixilon.minosoft.gui.eros.crash.ErosCrashReport.Companion.crash
|
||||
import de.bixilon.minosoft.terminal.RunConfiguration
|
||||
import de.bixilon.minosoft.util.json.Jackson
|
||||
import de.bixilon.minosoft.util.json.ResourceLocationSerializer
|
||||
import de.bixilon.minosoft.util.logging.Log
|
||||
import de.bixilon.minosoft.util.logging.LogLevels
|
||||
import de.bixilon.minosoft.util.logging.LogMessageType
|
||||
|
@ -28,19 +28,31 @@ object ResourceLocationSerializer : SimpleModule() {
|
||||
init {
|
||||
addDeserializer(ResourceLocation::class.java, Deserializer)
|
||||
addSerializer(ResourceLocation::class.java, Serializer)
|
||||
addKeyDeserializer(ResourceLocation::class.java, KeyDeserializer)
|
||||
addKeySerializer(ResourceLocation::class.java, KeySerializer)
|
||||
}
|
||||
|
||||
object Deserializer : StdDeserializer<ResourceLocation>(ResourceLocation::class.java) {
|
||||
|
||||
override fun deserialize(parser: JsonParser, context: DeserializationContext?): ResourceLocation {
|
||||
return parser.valueAsString.toResourceLocation()
|
||||
}
|
||||
}
|
||||
|
||||
object Serializer : StdSerializer<ResourceLocation>(ResourceLocation::class.java) {
|
||||
|
||||
override fun serialize(value: ResourceLocation?, generator: JsonGenerator, provider: SerializerProvider?) {
|
||||
generator.writeString(value?.toString())
|
||||
}
|
||||
}
|
||||
|
||||
object KeyDeserializer : com.fasterxml.jackson.databind.KeyDeserializer() {
|
||||
override fun deserializeKey(key: String, ctxt: DeserializationContext?): Any {
|
||||
return key.toResourceLocation()
|
||||
}
|
||||
}
|
||||
|
||||
object KeySerializer : com.fasterxml.jackson.databind.JsonSerializer<ResourceLocation>() {
|
||||
override fun serialize(value: ResourceLocation?, gen: JsonGenerator, serializers: SerializerProvider?) {
|
||||
gen.writeFieldName(value?.toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user