デフォルトの jackon の動作では、プロパティ (ゲッターとセッター) とフィールドの両方を使用して、JSON にシリアル化および逆シリアル化しているようです。
フィールドをシリアル化構成の正規のソースとして使用したいので、jackson にプロパティをまったく参照させたくありません。
アノテーションを使用して、個々のクラスごとにこれを行うことができます。
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
しかし、これをすべてのクラスに導入したいわけではありません...
これをグローバルに設定することは可能ですか? たとえば、オブジェクト マッパーにいくつか追加するなどでしょうか?
ベストアンサー1
個々の ObjectMapper を次のように構成できます。
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
グローバルに設定したい場合は、通常、ラッパー クラスを介して構成されたマッパーにアクセスします。