ホームページ > Java > &#&チュートリアル > 逆シリアル化を許可しながら、JSON シリアル化中にフィールドを選択的に無視するにはどうすればよいですか?

逆シリアル化を許可しながら、JSON シリアル化中にフィールドを選択的に無視するにはどうすればよいですか?

DDD
リリース: 2024-11-25 00:07:21
オリジナル
729 人が閲覧しました

How Can I Selectively Ignore Fields During JSON Serialization While Still Allowing Deserialization?

シリアル化のための選択的な @JsonIgnore

JSON シリアル化/逆シリアル化フレームワークを使用する場合、特定の操作に対して特定のフィールドを選択的に無視すると便利な場合があります。パスワードの場合、多くの場合、シリアル化された出力からパスワードを除外しつつ、逆シリアル化を許可することが望ましいことがよくあります。

提供されたコンテキスト

シリアル化されているユーザー オブジェクトとdeserialized には「パスワード」プロパティがあります。 @JsonIgnore は、シリアル化された JSON 応答に含まれないようにするために、このプロパティに適用されています。ただし、これによりパスワードの逆シリアル化もブロックされ、ユーザーのサインアップが不可能になります。

ソリューション

Jackson を内部的に使用する Spring JSONView は、シリアル化を制御するためのさまざまなメソッドを提供します。逆シリアル化。この特定のシナリオでは、2 つのアプローチが推奨されます。

Jackson Versions < 1.9

  • ゲッター メソッドに注釈を付ける: パスワード ゲッター メソッドに @JsonIgnore を追加します。これにより、逆シリアル化に影響を与えることなく、パスワードがシリアル化されるのを防ぐことができます。

Jackson Versions >= 1.9

  • ReadWrite 注釈引数: JsonProperty をアクセス引数とともに使用して、読み取り専用または書き込み専用を指定します アクセス。例:
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
ログイン後にコピー
  • Setter 注釈: アクセス引数を指定せずに、パスワード プロパティの setter メソッドに @JsonProperty の注釈を付けます。これは、プロパティが書き込み専用であることを示します。

追加メモ

このソリューションは、逆シリアル化を許可しながら、シリアル化の選択的除外を特にターゲットにしています。逆シリアル化マスキングが必要な他のシナリオでは、別のアプローチが必要になる場合があります。

以上が逆シリアル化を許可しながら、JSON シリアル化中にフィールドを選択的に無視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート