我试图使用Jackson mixins来忽略外部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: Double,但它不接受。
这是我的班级:
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())运行时,它崩溃并显示错误: Unable to start activity: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别字段"totalValue",未标记为可忽略
发布于 2016-04-02 17:29:33
尝试将注释放在MixIn的构造函数中,如下所示:
abstract class BarMixin (
@JsonIgnore val totalValue: Double = 0.0
)(注意()而不是{})
https://stackoverflow.com/questions/36371274
复制相似问题