首頁 >Java >java教程 >如何讓 Spring 使用我的自訂 ObjectMapper 進行序列化和反序列化?

如何讓 Spring 使用我的自訂 ObjectMapper 進行序列化和反序列化?

Barbara Streisand
Barbara Streisand原創
2024-12-05 10:24:12215瀏覽

How Can I Make Spring Use My Custom ObjectMapper for Serialization and Deserialization?

在 Spring 中設定 ObjectMapper

在 Spring 中,可以設定 ObjectMapper 來自定義序列化和反序列化過程的行為。一個常見的用例是排除欄位被序列化,除非它們使用特定註釋進行註釋,例如 @JsonProperty。

問題:

將 ObjectMapper配置為僅序列化用@JsonProperty註釋的字段,NumbersOfNewEvents類仍然包含序列化中的所有屬性JSON.

答案:

servlet.xml中定義的自訂CompanyObjectMapper並沒有被Spring使用。解決方案是使用 @Configuration 註解 CompanyObjectMapper bean,並將其定義為 Spring 配置類別中的 bean 方法。這將確保 Spring 選擇並使用自訂 ObjectMapper。

以下是如何使用 Spring Boot 實現此目的的範例:

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        return new CompanyObjectMapper();
    }
}

此配置會覆寫預設的 ObjectMapper bean,並且確保自訂 CompanyObjectMapper 用於序列化和反序列化。

注意: CompanyObjectMapper 類別中定義的 VisibilityChecker 對使用 Jackson 2.4.6 進行序列化沒有影響。若要從序列化中排除字段,請改用 @JsonIgnore 註解。

以上是如何讓 Spring 使用我的自訂 ObjectMapper 進行序列化和反序列化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn