refactor: better SerializersModule structure
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package club.itstudio.itmanager.config
|
package club.itstudio.itmanager.config
|
||||||
|
|
||||||
import club.itstudio.itmanager.utils.customSerializersModule
|
import club.itstudio.itmanager.utils.BigDecimalSerializer
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.modules.SerializersModule
|
||||||
|
import kotlinx.serialization.modules.contextual
|
||||||
import org.springframework.context.annotation.Bean
|
import org.springframework.context.annotation.Bean
|
||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
|
|
||||||
@@ -10,7 +12,9 @@ class SerializationConfig {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
fun kotlinxSerializationJson(): Json = Json {
|
fun kotlinxSerializationJson(): Json = Json {
|
||||||
serializersModule = customSerializersModule
|
serializersModule = SerializersModule {
|
||||||
|
contextual(BigDecimalSerializer)
|
||||||
|
}
|
||||||
ignoreUnknownKeys = true
|
ignoreUnknownKeys = true
|
||||||
isLenient = true
|
isLenient = true
|
||||||
encodeDefaults = false
|
encodeDefaults = false
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ import kotlinx.serialization.encoding.Decoder
|
|||||||
import kotlinx.serialization.encoding.Encoder
|
import kotlinx.serialization.encoding.Encoder
|
||||||
import kotlinx.serialization.json.JsonDecoder
|
import kotlinx.serialization.json.JsonDecoder
|
||||||
import kotlinx.serialization.json.JsonPrimitive
|
import kotlinx.serialization.json.JsonPrimitive
|
||||||
import kotlinx.serialization.modules.SerializersModule
|
|
||||||
import kotlinx.serialization.modules.contextual
|
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
|
||||||
object BigDecimalSerializer : KSerializer<BigDecimal> {
|
object BigDecimalSerializer : KSerializer<BigDecimal> {
|
||||||
@@ -28,8 +26,4 @@ object BigDecimalSerializer : KSerializer<BigDecimal> {
|
|||||||
}
|
}
|
||||||
return element.content.toBigDecimal()
|
return element.content.toBigDecimal()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val customSerializersModule = SerializersModule {
|
|
||||||
contextual(BigDecimalSerializer)
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user