@JsonIgnore の選択的適用: シリアル化のみの除外への対処
サーバーとのデータ交換中に、ユーザー オブジェクトには機密情報が含まれる可能性があります。シリアル化中はクライアントから隠蔽する必要があります。よく使用されるアプローチは、@JsonIgnore アノテーションを適用して機密プロパティを隠すことです。ただし、これにより逆シリアル化が妨げられ、特定のシナリオで課題が生じる可能性もあります。
問題を理解する
プロパティの @JsonIgnore アノテーションにより、JSON シリアル化にそのプロパティが含まれることが防止されます。ただし、逆シリアル化中に同じプロパティが必要な場合 (ユーザー アカウントの作成など)、除外が問題になります。
@JsonIgnore による選択的除外
解決するにはこの問題では、Jackson のバージョンに応じて 2 つの異なるアプローチを取ることができます。 used:
1.9 より前の Jackson バージョン:
Jackson バージョン 1.9 以降:
例:
パスワードを持つユーザー オブジェクトを考えます。フィールド:
@JsonIgnore private String password; // Setter with READ_ONLY access (Jackson 1.9 and later) @JsonProperty(access = JsonProperty.Access.READ_ONLY) public void setPassword(String password) { this.password = password; }
注:
以上が逆シリアル化に影響を与えずに、JSON シリアル化からフィールドを選択的に除外するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。