デフォルトのジャック動作では、プロパティ(ゲッターとセッター)とフィールドをシリアル化してjsonに逆シリアル化するように見えます。jacksonをフィールドのみを使用するように指定する方法 - 好ましくはグローバルに
フィールドをシリアル化設定の標準ソースとして使用したいので、jacksonがプロパティをまったく見たくないようにします。
私はアノテーションで個々のクラスごとにこれを行うことができます。
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
しかし、私は
がすることが可能です...一つ一つのクラスでこれを置くためにしたくありませんこれをグローバルに設定しますか? Object Mapperにいくつか追加するのと同じですか?
ティムは良い答えを出しました。もう1つの可能性は、共通の基底クラスがある場合は、それにクラス注釈を付けることができます。注釈はJacksonによって継承されます。 – StaxMan
私はそれを試みましたが、サブクラスに基本ケースの定義を伝える必要があるようです。 –
サブクラスがクラス注釈をオーバーライドしない限り、親の注釈はサブキーの一部であるかのように見えますが、クラス定義(もしそうでなければ、これはバグでしょう)。これは、JDKがアノテーションをどのように取り扱うかを必ずしも示すものではありませんが、Jacksonはアノテーションの完全継承を実装しています(メソッドアノテーションの場合でも)。 – StaxMan