JSON
Spring Boot 提供了与三个 JSON Map 库的集成:
• Gson
• Jackson
• JSON-B
Jackson 是首选的默认库。
Jackson
提供了 Jackson 的自动配置功能,并且 Jackson 是spring-boot-starter-json的一部分。当 Jackson 放在 Classpath 上时,会自动配置ObjectMapper bean。为定制 ObjectMapper 的配置提供了几个配置属性。
通常,我们将Java对象转成Json时称之为序列化,反之将Json转成Java对象时称之为反序列化,简单介绍一下Jackson,以及在SpringBoot项目开发中常用的Jackson方法
如何引入
SpringBoot提供了JSON依赖,我们可以按下面方式引入
1、直接引入JSON依赖
<!-- springboot-json -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</dependency>
2、一般情况下我们引入MVC,MVC里面帮我们引入了JSON依赖
<!-- springboot web(MVC)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
最终引入的依赖是
Jackson注解
Jackson的注解详细介绍
英文官方介绍:
https://github.com/FasterXML/jackson-annotations
常用注解
@JsonProperty 序列化、反序列化时,属性的名称
@JsonIgnoreProperties 序列化、反序列化忽略属性,多个时用“,”隔开
@JsonIgnore 序列化、反序列化忽略属性
@JsonAlias 为反序列化期间要接受的属性定义一个或多个替代名称,可以与@JsonProperty一起使用
@JsonInclude 当属性的值为空(null或者"")时,不进行序列化,可以减少数据传输
@JsonFormat 序列化、反序列化时,格式化时间
Gson
提供了 Gson 的自动配置。当 Gson 在 Classpath 上时,会自动配置Gson bean。提供了几个spring.gson.*配置属性用于自定义配置。为了获得更多控制权,可以使用一个或多个GsonBuilderCustomizer bean。
JSON-B
提供了 JSON-B 的自动配置。当 JSON-B API 和实现位于 Classpath 上时,将自动配置Jsonb bean。首选的 JSON-B 实现是提供依赖 Management 的 Apache Johnzon。