如何在Spring Boot中使用FastJson实现高效的JSON数据处理?这你必须得会!
🏆本文收录于《Spring Boot从入门到精通》,专门攻坚指数提升。
本专栏致力打造最硬核 Spring Boot 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
📣1. 前言
随着互联网的发展,JSON(JavaScript Object Notation)已成为近年来使用最广泛的数据交换格式之一。为了提高JSON数据的处理效率,目前市面上常用的JSON解析库有Jackson、Gson、FastJson等。本文将介绍如何在Spring Boot中使用FastJson实现高效的JSON数据处理。
那么,具体如何实现呢?这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途中有任何不清楚或疑问的地方皆可评论区留言或私信,bug菌将第一时间给予解惑,那么废话不多说,直接开整!Fighting!!

🌊2. 环境说明
开发工具:IDEA 2021.3 JDK版本: JDK 1.8 Spring Boot版本:2.3.1 RELEASE Maven版本:3.8.2
🌊3. 摘要
本文将首先介绍FastJson的基本概念,接下来将介绍如何在Spring Boot中集成FastJson,并通过实例来演示FastJson在Spring Boot中的应用。
🌊4. FastJson概述
FastJson是阿里巴巴的一个开源JSON解析库,提供了JSON序列化、反序列化、数据结构转换等功能,并拥有极高的性能。目前已经被广泛应用于各种Java项目中。
FastJson的优点如下:
- 速度快:FastJson的处理速度比其他JSON解析库更快,是JSON解析库中速度最快的之一。
- 使用方便:FastJson提供多种API接口,使用方便,支持java对象与json格式之间的转换。
- 易于扩展:FastJson提供了一系列扩展接口,可以方便地实现自定义序列化、反序列化等扩展功能。
- 支持注解:FastJson支持多种注解,可以方便地控制JSON序列化或反序列化过程中的一些细节问题。
🌊5. 在Spring Boot中集成FastJson
Spring Boot已经集成了许多常用的JSON解析库,如Jackson和Gson等,但是在某些场景中,FastJson的性能可能更高效。下面将介绍如何在Spring Boot中集成FastJson。
🌿5.1 搭建Spring Boot应用
首先,我们先创建个基础的Spring Boot项目,如果还不会点这里,此处就不详细赘述啦。
🌿5.2 添加依赖
在pom.xml文件中添加FastJson的依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>
🌿5.3 配置默认的JSON解析库
在Spring Boot的配置文件中添加以下内容:
spring:
http:
converters:
preferred-json-mapper: fastjson
或者在Java配置文件中添加以下内容:
@Configuration
public class FastJSonConfig {
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 创建FastJson消息转换器
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
// 创建配置对象
FastJsonConfig config = new FastJsonConfig();
// 配置序列化策略
config.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteDateUseDateFormat
);
// 配置字符集
converter.setDefaultCharset(Charset.forName("UTF-8"));
// 将配置添加到转换器中
converter.setFastJsonConfig(config);
// 返回HttpMessageConverters对象
return new HttpMessageConverters(converter);
}
}
这些配置可以告诉Spring Boot使用FastJson作为默认的JSON解析库。
🌿5.4 使用说明
在需要使用FastJson的地方,比如Controller方法中,使用@ResposeBody注解即可返回FastJson格式的JSON数据。
🌿5.5 示例代码
下面通过一个简单的示例来演示FastJson在Spring Boot中的应用。
🌵5.5.1 实体类定义
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserEntity {
@TableId(value = "id", type = IdType.AUTO) //表示该id为自增,新增时候不需要手动设置id。
private Integer id;
@TableField(value = "name")
private String name;
@TableField(value = "age")
private Integer age;
@TableField(value = "sex")
private String sex;
@TableField(value = "address")
private String address;
@TableField(value = "describes")
private String describes;
@TableField(value = "image")
private String image;
}
🌵5.5.2 控制器方法定义之序列化
首先,我们定义一个Java对象,然后使用FastJson将该Java对象序列化成Json字符串。
@RestController
@RequestMapping("/user")
public class UserController {
/**
* 演示fastJson
*/
@GetMapping("/{id}")
@ApiOperation(value = "演示fastJson之序列化", notes = "演示fastJson之序列化")
public UserEntity getUser(@PathVariable("id") Long id) {
UserEntity user = new UserEntity();
user.setId(1);
user.setName("bug菌");
user.setSex("男");
user.setAge(20);
user.setDescribes("这是示例数据。");
return user;
}
}
🌵5.5.3 控制器方法定义之反序列化
在另外一个接口中,我们将接收一个Json字符串,并将其转换成一个Java对象。
@PostMapping("/user")
@ApiOperation(value = "演示fastJson之反序列化", notes = "演示fastJson之反序列化")
public UserEntity createUser(@RequestBody String json) {
return JSON.parseObject(json, UserEntity.class);
}
这里我们使用了JSON工具类提供的parseObject方法将Json字符串转换成Java对象。
🌵5.5.4 代码方法介绍
-
在实体类User中,使用@Data注解自动生成getter和setter方法,使用@NoArgsConstructor和@AllArgsConstructor注解分别生成无参构造方法和带参构造方法。
-
在控制器类UserController中,使用@RestController注解表明这是一个RESTful风格的控制器,使用@RequestMapping注解指定类级别的请求路径为"/user"。
-
在getUser方法上,使用@GetMapping注解将请求路径定义为"/{id}",将id作为参数,通过@RestController注解和@ResposeBody注解返回FastJson格式的JSON数据。
-
使用了JSON工具类提供的parseObject方法将Json字符串转换成Java对象。
🌵5.5.5 序列化测试结果展示
启动应用后,使用浏览器访问http://localhost:8080/user/1
或者Swagger请求,将看到以下JSON数据:
{ "address":"", "age":20, "describes":"这是示例数据。", "id":1, "image":"", "name":"bug菌", "sex":"男" }
演示截图如下:
🌵5.5.6 反序列化测试结果展示
请求后结果截图如下:
可以看到Json字符串,成功将其转换成一个了一个UserEntity对象。
🌊6. 总结
本文介绍了FastJson的基本概念和在Spring Boot中的集成方法,并通过实例演示了FastJson在Spring Boot中的应用。FastJson具有速度快、使用方便、易于扩展、支持注解等优点,在某些场景中,可以选择使用FastJson作为默认的JSON解析库。
ok,以上就是我这期的全部内容啦,如果还想学习更多,你可以看看如下的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬。
「赠人玫瑰,手留余香」,咱们下期拜拜~~
🌊7. 热文推荐
在入门及进阶之途,我必助你一臂之力,系统性学习,从入门到精通,带你不走弯路,直奔终点;投资自己,永远性价比最高,都这么说了,你还不赶紧来学??
本文涉及所有源代码,均已上传至github开源,供同学们一对一参考 GitHub传送门,
同时,原创开源不易,欢迎给个star🌟,想体验下被🌟的感jio,非常感谢❗
🌊8. 文末
转载自:https://juejin.cn/post/7277798325645262902