如何在Spring 中設定ObjectMapper
問題:
問題:問題:
你想在Spring 中設定ObjectMapper Spring僅序列化用@JsonProperty註解的元素。但是,儘管遵循建議的說明,NumbersOfNewEvents 類別在序列化時仍然包含所有屬性。
說明:public class CompanyObjectMapper extends ObjectMapper { public CompanyObjectMapper() { super(); SerializationConfig config = getSerializationConfig(); config.withView(Some.class) // Specify which view to use .withVisibility(JsonAutoDetect.Visibility.NONE) .withVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); } }在自訂 CompanyObjectMapper 中,您已設定可見性檢查器預設隱藏所有欄位和 getter/setter。這會阻止 ObjectMapper 存取和序列化 newAccepts 和 openRequests 欄位。
解決方案:
要達到期望的結果,可以使用更有針對性的方法來配置可見性檢查員。以下是一個範例:@Configuration public class JacksonConfiguration { @Bean public ObjectMapper objectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); // Enable default typing for polymorphic types mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); // Allow serialization of fields mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true); // Enable default view inclusion return mapper; } }此配置將允許序列化帶有 @JsonProperty 註解的屬性,同時隱藏其他欄位。 Spring Boot 配置: 如果您使用Spring Boot 和Jackson 2.4.6 或更高版本,您可以使用以下命令配置: 此配置啟用多態類型的預設類型,允許所有欄位的序列化,並啟用預設視圖包含。
以上是如何配置Spring的ObjectMapper只序列化@JsonProperty註解的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!