1. JSON
Spring Boot 提供了三种JSON 解析类库:
- Gson
- Jackson
- JSON-B
默认使用的Jackson.
1.1 Jackson
Spring Boot 自动配置提供的是Jackson, 属于这个spring-boot-starter-json starters 的一部分。当在classPath 检测到这个类库的时候,ObjectMapper 会自动配置bean。提供了几个配置属性来自 定义配置 ObjectMapper。
自定义配置ObjectMapper
Spring MVC 客户端和服务端使用HttpMessageConverters处理HTTP交换中的内容转换,如果Jackson在classpath上,那么我们已经获得了由其提供的默认转换器Jackson2ObjectMapperBuilder,其实例将自动为您配置。
ObjectMapper (或 XmlMapper,Jackson XMl 转换器)实例默认有以下三个自定义属性
- MapperFeature.DEFAULT_VIEW_INCLUSION 禁用
- DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES 禁用
- SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 禁用
Spring Boot 也有一些功能可以让它变得更简单。
我们可以配置ObjectMapper 和XmlMapper 实例,Jackson提供了一套广泛的简单开/关功能,可用于配置其处理的各个方面
| 枚举类型 | 属性值 | 可选值 |
|---|---|---|
| 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 |
例如:spring.jackson.serialization.indent_output=true 设置后就可以格式化打印
1.2 Gson
提供Gson的自动配置。当Gson在类路径上时,Gson会自动配置bean。spring.gson.*提供了几个配置属性来自定义配置。为了获得更多控制,GsonBuilderCustomizer可以使用一个或多个 bean。
1.3 JSON-B
提供了JSON-B的自动配置。当JSON-B API和实现在类路径上时,Jsonb将自动配置bean。首选的JSON-B实现是Apache Johnzon,它提供了依赖关系管理。






还没有评论,来说两句吧...