サーバーとの間で送受信されるユーザー オブジェクトがあります。ユーザー オブジェクトを送信するときに、ハッシュされたパスワードをクライアントに送信したくありません。そのため、@JsonIgnore
パスワード プロパティを追加しましたが、これによりパスワードへの逆シリアル化もブロックされ、パスワードを持たないユーザーのサインアップが困難になります。
をシリアル化にのみ適用し、デシリアル化には適用しないようにするにはどうすればよいですか@JsonIgnore
? Spring JSONView を使用しているため、 をあまり制御できませんObjectMapper
。
私が試したこと:
@JsonIgnore
プロパティに追加@JsonIgnore
ゲッターメソッドのみ追加
ベストアンサー1
正確な方法は、使用している Jackson のバージョンによって異なります。これはバージョン1.9@JsonIgnore
あたりで変更されましたが、それより前は、ゲッターに追加することでこれを行うことができました。
試したことのあるもの:
ゲッターメソッドにのみ@JsonIgnoreを追加します
これを実行し、オブジェクトのパスワードのセッター メソッドに JSON「パスワード」フィールド名の特定の注釈も追加します。@JsonProperty
Jackson の最近のバージョンではREAD_ONLY
、 およびWRITE_ONLY
の注釈引数が追加されましたJsonProperty
。そのため、次のようなこともできます。
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
ドキュメントはここ。