当前位置: 首页 > 知识库问答 >
问题:

如何在spring boot应用程序中配置jackson而不重写纯Java中的springs默认设置

白浩气
2023-03-14

在我的spring boot应用程序中,我使用jackson通过在需要的地方注入objectmapper来序列化对象。我找到了这样的答案:https://stackoverflow.com/a/32842962/447426,但这一个创建了一个新的映射器--使用jacksons的默认设置。

另一方面,我在官方文件中发现了这一点。我不是很明白。没有示例代码。

那么如何在spring默认对象映射器的基础上配置springs ObjectMapper呢?

该配置在“ObjectMapper”上应该是活动的。

共有2个答案

伯丁雷
2023-03-14

另一方面,我在官方文件中发现了这一点。我真的没听懂。没有示例代码。

这只是说,您只需要在application.properties文件中设置正确的属性,就可以启用或禁用各种jackson特性。

spring.jackson.mapper.default-view-inclusion=false
spring.jackson.deserialization.fail-on-unknown-properties=false
姬慎之
2023-03-14

为此,您应该使用Jackson2ObjectMapperBuilderCustomizer

@Configuration
public class JacksonConfiguration {

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer addCustomBigDecimalDeserialization() {
        return new Jackson2ObjectMapperBuilderCustomizer() {

            @Override
            public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) {
               jacksonObjectMapperBuilder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
               // Add your customization
               // jacksonObjectMapperBuilder.featuresToEnable(...)      
            }
        };
    }
}

因为Jackson2ObjectMapperBuilderCustomizer是一个函数,所以Java 8支持更紧凑的代码

@Configuration
public class JacksonConfiguration {

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer addCustomBigDecimalDeserialization() {
        return builder -> {
            builder.featuresToDisable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
            // Add your customization
            // builder.featuresToEnable(...)      
            };
        }
    }
}
 类似资料:
  • 我使用Java和Jackson库将JSON文件解析为Java类。我的问题是,如果值为null或空,我无法设置默认值。有可能吗?现在,我只是把它写在setters部分。 例如,我有一个JSON文件 在我的Java类中,如果值为null或空,我想将其设置为Java函数。 举个例子 所以,如果设置了这个值,那么就是它。如果不是,那应该是美国。

  • 本文向大家介绍如何在Java中使用Jackson来获取JSONParser默认设置?,包括了如何在Java中使用Jackson来获取JSONParser默认设置?的使用技巧和注意事项,需要的朋友参考一下 JSON  Parser的 所有默认设置都可以使用JsonParser.Feature枚举来表示。该JsonParser.Feature.values()将返回所有可用的功能JSONParser 

  • 昨天我启动了一个Android Things项目,我正在使用Android Studio测试该应用程序。以便使用

  • 我有一个spring引导应用程序,其中默认属性设置在类路径(src/main/resources/application.properties)中的文件中。 我想用文件(src/test/resources/test.properties)中声明的属性重写JUnit测试中的一些默认设置 我通常有一个专用的配置类用于我的Junit测试,例如。 我首先认为在TestConfig类中使用就可以完成任务,

  • 问题内容: 我在同一包中有2个班级。这两个类都具有main方法。现在,我想构建一个jar文件。我想建立2个jar文件,这些文件使用不同的主要功能作为默认主要功能。 例如 如何在NetBeans IDE中进行操作? 我找到了答案。您可以在netbeans中轻松地做到这一点:1)右键单击项目>属性>运行>选择类frm并下拉列表。在netbeans中是如此简单。Netbeans摇摇欲坠! 问题答案: 在

  • 问题内容: 使用jersey jersey.java.net当URI中没有接受标头或.xml后缀时,如何将JSON设置为默认序列化而不是XML? 问题答案: 您可以在@Produces批注中为每种媒体类型分配质量索引。如果可以同时允许XML和JSON,则可以执行以下操作以使Jersey偏爱JSON: