java - 如何在 Spring 上注册我的 JsonSerializer
问题描述
从这个问题中得到答复:https://stackoverflow.com/a/45566139/2968729我想将其添加NullSerializer
到 autoconfiguredObjectMapper
中。春季启动文档:
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<>());
推荐阅读
- angular - TypeScript 泛型:扩展提供的接口
- python - 如何在熊猫中绘制另一列的一列“用法”
- python-3.x - Python + Docker + 未找到模块
- mysql - 如何在不使用 row_number 函数的情况下获得具有欺骗性的第一行?
- node.js - 如何在 TypeScript 中实现 GRPC 服务器?
- sapui5 - SAPUI5 PlanningCalendar 设置 startDate
- javascript - 每个项目的jQuery在点击时分配内容
- python - Python在加法操作期间抛出带有意外行为的OverflowError
- google-apps-script - 如何在下一个函数运行之前附加工作表
- json - Azure linux VM部署.json失败,输入密码进行部署