我如何在Spring上注册我的JsonSerializer

时间:2018-10-11 11:50:16

标签: java spring-boot jackson

从以下问题中获取答案:https://stackoverflow.com/a/45566139/2968729我想将NullSerializer添加到自动配置的ObjectMapper中。 Spring Boot文档:

  

任何类型为com.fasterxml.jackson.databind.Module的bean都是   自动向自动配置注册   Jackson2ObjectMapperBuilder并应用于任何ObjectMapper   它创建的实例。这为   向您添加新功能时提供定制模块   应用。

这就是我正在尝试的方式:

@Configuration
public class JacksonConfig {

    @Bean
    public Module customSerializer() {
        SimpleModule module = new SimpleModule();
        module.addSerializer(new NullSerializer());
        return module;
    }
}

但是我得到了:

NullSerializer does not define valid handledType() -- must either register with method that takes type argument or make serializer extend com.fasterxml.jackson.databind.ser.std.StdSerializer

handleType()方法的Javadoc说:

  

用于访问此序列化程序可以处理的对象类型的方法。注意   不能保证此信息准确无误-可能是   更通用(超级类型)-但它应该不正确(返回a   非相关类型)。       默认实现将返回null,这实质上意味着与返回Object.class相同。也就是说,一无所知   关于已处理类型。

使用Spring Boot 2.0.5.RELEASE

1 个答案:

答案 0 :(得分:0)

我认为问题在于您使用的是原始类型。您需要给它上课。

module.addSerializer(Object.class, new NullSerializer<>());