在 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中文网其他相关文章!