👨🎓作者:bug菌
✏️博客:CSDN、掘金、infoQ、51CTO等
🎉简介:CSDN | 阿里云 | 华为云 | 51CTO等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。...
✍️温馨提醒:本文字数:1999字, 阅读完需:约 5 分钟
🏆本文收录于《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的优点如下:
🌊5. 在Spring Boot中集成FastJson
Spring Boot已经集成了许多常用的JSON解析库,如Jackson和Gson等,但是在某些场景中,FastJson的性能可能更高效。下面将介绍如何在Spring Boot中集成FastJson。
🌿5.1 搭建Spring Boot应用
首先,我们先创建个基础的Spring Boot项目,如果还不会点这里,此处就不详细赘述啦。
🌿5.2 添加依赖
在pom.xml文件中添加FastJson的依赖:
com.alibaba
fastjson
1.2.72
🌿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. 热文推荐
若想学习更多,可以参考这篇专栏总结《2023最新首发,全网最全 Spring Boot 学习宝典(附思维导图)》,本专栏致力打造最硬核 Spring Boot 进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中。欢迎大家订阅持续学习。
在入门及进阶之途,我必助你一臂之力,系统性学习,从入门到精通,带你不走弯路,直奔终点;投资自己,永远性价比最高,都这么说了,你还不赶紧来学??
本文涉及所有源代码,均已上传至github开源,供同学们一对一参考 GitHub传送门,
同时,原创开源不易,欢迎给个star🌟,想体验下被🌟的感jio,非常感谢❗
🌊8. 文末
我是bug菌,CSDN | 阿里云 | 华为云 | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。