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。