使用@JsonIgnore 進行JSON 序列化和反序列化控制
在Spring JSONView 應用程式中,自訂屬性的序列化和反序列化方式可能具有挑戰性。一個常見的情況是,當我們想要在序列化期間排除哈希密碼等敏感數據,同時仍然能夠反序列化它們時。
為了實現此目的,我們在密碼屬性上使用 @JsonIgnore 註解。但是,這也會阻止該屬性被反序列化,從而使用戶在沒有現有密碼時註冊變得困難。
解決方案取決於所使用的 Jackson 版本。在 1.9 之前,我們只能在 getter 方法上使用 @JsonIgnore。對於較新的版本,我們添加以下註釋:
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY):setter 方法上的此註釋允許序列化,但阻止反序列化。
或者,使用@JsonProperty 的READ_ONLY 存取類型參數也可以實現this:
@JsonProperty(access = JsonProperty.Access.READ_ONLY) private String password;
這些註解確保密碼屬性僅在JSON 轉換期間序列化,但在物件建立期間仍然可以反序列化。
透過遵循這些技術,我們可以選擇性地控制 JSON 序列化以及敏感屬性的反序列化,為 Web 應用程式提供靈活性和安全性。
以上是如何在Spring JSONView中控制敏感資料的JSON序列化和反序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!