Jackson与Kotlin混合
我正在尝试使用Jackson mixin忽略外部Kotlin数据类的属性,但到目前为止,它并不适用于我。
这是我的SimpleModule扩展名:
class BarModule : SimpleModule() { override fun setupModule(context: SetupContext?) { context?.setMixInAnnotations(Bar::class.java, BarMixin::class.java) } }
这是我的混合:
abstract class BarMixin { @JsonIgnore val totalValue: Double = 0.0 }
我最初尝试@JsonIgnore val totalValue:双,但它不会接受。
这是我的班级:
data class Bar( val a: String, val b: Boolean = false, val c: Boolean = false, val d: Array<Block> ) { val totalValue: Double by lazy { d.sumByDouble { it.value } } }
这是我如何创建我的映射器:
private val mapper = jacksonObjectMapper().registerModule(KotlinModule()).registerModule(BarModule())
运行时,它崩溃的错误:无法启动活动:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“totalValue”,未标记为可忽略
尝试把注释放在MixIn的构造函数中,如:
abstract class BarMixin ( @JsonIgnore val totalValue: Double = 0.0 )
(注意()
而不是{}
)