在SpringBoot中使用Jackson,Spring Boot默认提供了一套初始化配置,同时也提供了可通过application配置文件进行配置的项目。

通过这些配置项,可更加方便的进行Json转化的配置。其实,Spring Boot针对内置的几种Json框架都有相应的配置,比如GSON和JSON-B的。本篇文章重点解析Spring Boot默认使用Jackson的属性配置。

对应配置配置定义在JacksonProperties类中。部分源代码如下:

@ConfigurationProperties(prefix = "spring.jackson")
public class JacksonProperties {

    private String dateFormat;

    private String jodaDateTimeFormat;

    private String propertyNamingStrategy;

    // ...
}

也就是说,针对Jackson在application中配置,均以spring.jackson为前缀。而具体的配置属性定义在类内部。

下面我们看具体的定义及作用的样例。

# 日期格式字符串或标准日期格式类全限定名,只控制java.util.Date的序列化format
spring.jackson.date-format= yyyy-MM-dd HH:mm:ss

# 指定Joda date/time的格式,比如yyyy-MM-ddHH:mm:ss. 如果没有配置的话,dateformat会作为backup。
spring.jackson.joda-date-time-format= yyyy-MM-dd HH:mm:ss

# 全局设置pojo或被@JsonInclude注解的属性的序列化方式
spring.jackson.default-property-inclusion= NON_NULL
# 不为空的属性才会序列化,具体属性可看JsonInclude.Include

# 是否开启Jackson的序列化
# 示例:spring.jackson.serialization.indent-output= true
spring.jackson.serialization.*=

# 是否开启Jackson的反序列化
spring.jackson.deserialization.*= 

# 是否开启json的generators
# 示例:spring.jackson.generator.auto-close-json-content=true
spring.jackson.generator.*= 

# 指定json使用的Locale
spring.jackson.locale= zh

# 是否开启Jackson通用的特性
spring.jackson.mapper.*= 

# 是否开启jackson的parser特性
spring.jackson.parser.*= 

# 指定Json策略模式
spring.jackson.property-naming-strategy=com.fasterxml.jackson.databind.PropertyNamingStrategy.UpperCamelCaseStrategy
# 或
spring.jackson.property-naming-strategy=UPPER_CAMEL_CASE

# 是否开启Jackson的反序列化
spring.jackson.serialization.*= 

# 指定日期格式化时区,比如America/Los_Angeles或者GMT+10
spring.jackson.time-zone= GMT+8

通过application配置完注解之后,会在符合条件的地方自动生效。关于具体使用的示例我们就不再赘述,可参看对照前些章节的具体实例。

Spring技术视频

CSDN学院:《Spring Boot 视频教程全家桶》



SpringBoot2.x系列教程(十五)SpringBoot Jackson属性配置详解插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2020/01/03/springboot2-x-springboot-jackson/