如何在 Spring 上注册我的 JsonSerializer

2023-12-20

摘自这个问题的回答:https://stackoverflow.com/a/45566139/2968729 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 说:

用于访问此序列化程序可以处理的对象类型的方法。笔记 该信息不能保证准确——它可能是 更通用(超类型)——但它不应该是错误的(返回一个 非相关类型)。 默认实现将返回 null,这本质上与返回 Object.class 的含义相同;也就是说,什么都不知道 关于处理类型。

使用 Spring Boot 2.0.5.RELEASE


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

module.addSerializer(Object.class, new NullSerializer<>());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Spring 上注册我的 JsonSerializer 的相关文章

随机推荐