Cha*_* Ju 6 java java-time objectmapper jackson2
我定义一个JavaTimeModule:
@Bean public Module java8TimeModule() {
JavaTimeModule javaTimeModule = new JavaTimeModule();
return javaTimeModule;
}
Run Code Online (Sandbox Code Playgroud)
但是,它不会向默认对象映射器注册自身。我正在使用 jackson-databind-2.8.9.jar。
Eclipse IDE的在线帮助JavaTimeModule()说:
请注意,从 2.6 开始,该模块不支持自动注册。
不确定 jackson-databind-2.8.9 是否仍然是同样的情况,导致JavaTimeModule未注册默认对象映射器。
我不想创建新的对象映射器。与过去一样,当我尝试此操作时,我创建的对象映射器遇到了另一个问题。
Springboot 文档说:
定义 Jackson2ObjectMapperBuilder 类型的 @Bean 将允许您自定义默认的 ObjectMapper 和 XmlMapper。
但我找不到代码示例,也不知道该怎么做。
如果我定义了一个@Beanof 类型Jackson2ObjectMapperBuilder,它会取代默认的类型吗?其后果是什么?以及如何从中获取默认的对象映射器Jackson2ObjectMapperBuilder?
我在 Jackson2ObjectMapperBuilder 中找到了有关如何自定义默认 objectMapper 的现有链接,启用字段可见性 ANY。
我也发现了我的程序的问题。JavaTimeModule 自动通过 jackson-databind-2.8.9 注册到默认的 objectMapper。我的程序中的问题是由使用新创建的 objectMapper 引起的。我应该使用@Autowired objectMapper 的默认objectMapper。