ホームページ >Java >&#&チュートリアル >Jackson でのみシリアル化に @JsonIgnore を選択的に適用するにはどうすればよいですか?

Jackson でのみシリアル化に @JsonIgnore を選択的に適用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-28 11:09:13926ブラウズ

How Can I Selectively Apply @JsonIgnore for Serialization Only in Jackson?

選択的 @JsonIgnore アプリケーション: シリアル化のみ

シリアル化および逆シリアル化中に機密データを扱う場合、特定のプロパティを送信から除外することが望ましいことがよくあります。 @JsonIgnore アノテーションはこの機能を提供しますが、デフォルトではシリアル化と逆シリアル化の両方に適用されます。シリアル化の場合のみ暗号化を抑制する必要があるシナリオの場合、それを実現する方法は次のとおりです。

バージョン依存のソリューション

Jackson バージョン 1.9 より前では、@JsonIgnore のゲッター メソッドを次のように制限できました。逆シリアル化を有効にし、シリアル化を無効にします。これは、ゲッターにのみ @JsonIgnore アノテーションを付けることを意味します。

Jackson 1.9 の新しいアプローチ

以降の Jackson バージョンでは、@JsonProperty アノテーションによりさらなる柔軟性が提供されます。 @JsonIgnore をシリアル化にのみ適用するには:

  1. 前と同様に @JsonIgnore をゲッターに追加します。
  2. 機密プロパティのセッター メソッドに明示的なフィールド名を持つ @JsonProperty を追加します。逆シリアル化は期待どおりに機能します。

プロパティ レベルのアクセスControl

Jackson の @JsonProperty.Access アノテーションを持つバージョンの場合、別のオプションがあります:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;

これにより、パスワードのシリアル化が許可されますが、逆シリアル化が防止され、効果的にパスワードが保護されます。詳細については、Jackson のドキュメントを参照してください。

以上がJackson でのみシリアル化に @JsonIgnore を選択的に適用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。