フィールドのみを使用するように Jackson を構成する: グローバルなアプローチ
Jackson のデフォルトの動作には、シリアル化にプロパティ (ゲッター/セッター) とフィールドの両方を使用することが含まれますそしてデシリアライズ。ただし、フィールドをシリアル化設定のソースとしてのみ使用したい場合があります。
個別のクラス アノテーション
これを実現するには、次のアノテーションを個別のクラスに適用できます。 :
@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
ただし、このメソッドはすべてのクラスに繰り返しアノテーションを付ける必要があります。
グローバル構成
この動作をグローバルに構成するには、個々の 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));
Wrapper を介したグローバル アクセスクラス
設定されたマッパーへのグローバル アクセスについては、次のことを考慮してください。ラッパー クラスの実装:
必要に応じてマッパーをクラス/関数でラップし、グローバルに公開します:
public class JsonMapperWrapper { private static final ObjectMapper mapper = <configure ObjectMapper as above>; public static ObjectMapper getMapper() { return mapper; } }
このアプローチでは、JsonMapperWrapper.getMapper( ).
以上がグローバルにシリアル化および逆シリアル化用のフィールドのみを使用するように Jackson を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。