2016-04-02 5 views
2

ジャクソンミックスインを使用して、外部の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ヴァルtotalvalueを試してみました:ダブルを、それはそれを受け入れないでしょう。活動を開始することができません:

private val mapper = jacksonObjectMapper().registerModule(KotlinModule()).registerModule(BarModule()) 

実行している、それはエラーでクラッシュ:

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 } 
    } 
} 

これは私が私のマッパーを作成する方法である:

この

は私のクラスであるcom.fasterxml.jackson .databind.exc.UnrecognizedPropertyException:認識されないフィールド "totalValue"、無視できるとマークされていない

答えて

1

あなたのMixInのコンストラクタに注釈を入れてみてください:

abstract class BarMixin (
    @JsonIgnore val totalValue: Double = 0.0 
) 

()代わり{}通知)

関連する問題