自定义类型转换器
一开始我是这样设置类型转换器的:
@Configuration
class JacksonConfig {
@Bean
fun jackson2ObjectMapperBuilderCustomizer(): Jackson2ObjectMapperBuilderCustomizer =
Jackson2ObjectMapperBuilderCustomizer { builder ->
builder.serializerByType(Long::class.java, ToStringSerializer.instance)
}
}
但是出现了问题,有下面两个对象:
data class Person(
val id: Long
)
data class Student(
val id: Long? = null
)
Person对象在序列化时类型转换器生效了,但是Student对象却没有生效。
解决方案
@Configuration
class JacksonConfig {
@Bean
fun jackson2ObjectMapperBuilderCustomizer(): Jackson2ObjectMapperBuilderCustomizer =
Jackson2ObjectMapperBuilderCustomizer { builder ->
builder.serializerByType(Long::class.java, ToStringSerializer.instance)
builder.serializerByType(Long::class.javaObjectType, ToStringSerializer.instance)
}
}
Kotlin 数据类
在使用xml文件自定义mapper方法时,需要将数据类所有的字段设置默认的参数
data class Student(
val id: Long? = null
)