@JsonIgnore 的選擇性應用:解決僅序列化排除
在與伺服器進行資料交換期間,使用者物件可能包含以下敏感訊息:在序列化期間應該對客戶端隱藏。經常使用的方法是應用 @JsonIgnore 註解來隱藏敏感屬性。但是,這也會幹擾反序列化,從而在特定場景中帶來挑戰。
了解問題
屬性上的 @JsonIgnore 註解會阻止將其包含在 JSON 序列化中。但是,如果反序列化期間需要相同的屬性(例如,建立使用者帳戶),則排除會出現問題。
使用@JsonIgnore進行選擇性排除
解決對於這個問題,根據使用的Jackson 版本可以採取兩種不同的方法:
Jackson 1.9先前的版本:
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中文網其他相關文章!