前言:
眼前大家对“apachejason配置”大致比较注重,朋友们都需要知道一些“apachejason配置”的相关资讯。那么小编在网络上搜集了一些对于“apachejason配置””的相关文章,希望小伙伴们能喜欢,我们快快来了解一下吧!上篇我们学习了《46-Spring MVC的路径匹配和内容协商》,本篇我们学习Spring MVC的Josn配置。
3.10 JSON
Spring MVC给我们提供了多种Json的实现,包含:Jackson、Gson、JSON-B。
Jackson使用的是MappingJackson2HttpMessageConverter,Spring Boot提供的自动配置为:JacksonAutoConfigurationGson使用的是GsonHttpMessageConverter,Spring Boot提供的自动配置为:GsonAutoConfigurationJSON-B使用的是JsonbHttpMessageConverter,Spring Boot提供的自动配置为:JsonbAutoConfiguration
Spring MVC默认使用的是Jackson,即使用MappingJackson2HttpMessageConverter。
3.10.1 Jackson的ObjectMapper配置
上一章中我们已经通过通过配置ObjectMapper的Bean或者实现Jackson2ObjectMapperBuilderCustomizer接口来配置的演示。
ObjectMapper还可以通过前缀为spring.jackson.*在外部配置中配置,如配置缩进可使用:
spring.jackson.serialization.indent_output: truespring.jackson.date-format: dd/MM/yyyy3.10.2 切换Json实现3.10.2.1 切换为Gson
当Gson的jar包在类路径中时,一个Gson的Bean会被配置,并自动注册GsonHttpMessageConverter。可以通过GsonBuilderCustomizer来定制Gson的Bean。
implementation 'com.google.code.gson:gson'
我们可以通过前缀spring.gson.*在外部配置中配置:
spring.gson.pretty-printing: truespring.gson.date-format: dd/MM/yyyy
在外部配置设置优先使用Gson:
spring.http.converters.preferred-json-mapper: gson3.10.2.2 切换为JSON-B
JSON-B是JSR-367,提供JSON-B API规范,Spring Boot偏向于使用Apache Johnzon作为实现。当jar包在类路径时,一个Jsonb的Bean会被配置,并自动注册JsonbHttpMessageConverter。
implementation 'javax.json.bind:javax.json.bind-api'implementation 'org.apache.geronimo.specs:geronimo-json_1.1_spec:1.2'implementation 'org.apache.johnzon:johnzon-jsonb'
JSON-B下也可以:
使用@JsonbProperty来配置Json的key;使用@JsonbDateFormat来定制时间格式;使用@JsonbNumberFormat定制数字格式;使用@JsonbTransient来忽略字段。
在外部配置设置优先使用JSON-B:
spring.http.converters.preferred-json-mapper: jsonb
标签: #apachejason配置