Spring Boot支持三种JSON框架:

  • Gson
  • Jackson
  • JSON-B

Jackson为默认JSON框架。

Jackson

要使用Jackson,首先要引入spring-boot-starter-json,因为Jackson是spring-boot-starter-json的一部分。当启用自动配置后,Spring Boot将会自动配置一个ObjectMapper Bean。Spring Boot提供一些属性来定制化ObjectMapper Bean。

Enum 

Property 

Values

com.fasterxml.jackson.databind.DeserializationFeature

spring.jackson.deserialization.<feature_name>

true, false

com.fasterxml.jackson.core.JsonGenerator.Feature

spring.jackson.generator.<feature_name>

true, false

com.fasterxml.jackson.databind.MapperFeature

spring.jackson.mapper.<feature_name>

true, false

com.fasterxml.jackson.core.JsonParser.Feature

spring.jackson.parser.<feature_name>

true, false

com.fasterxml.jackson.databind.SerializationFeature

spring.jackson.serialization.<feature_name>

true, false

com.fasterxml.jackson.annotation.JsonInclude.Include

spring.jackson.default-property-inclusion

always, non_null, non_absent, non_default, non_empty

例如,如果想要输出格式化的json,可以在application.properties配置 spring.jackson.serialization.indent_output=true。

Gson

当在项目中引用gson时,Spring Boot将会自动配置一个Gson Bean。像Jackson一样,Spring Boot为定制化Gson Bean提供了以spring.gson.*开头的属性。

JSON-B

当在项目中引用JSON-B API时,Spring Boot将会自动配置一个Jsonb Bean。