是 的一个重大升级版本。
以下摘自官方的介绍:
是一个性能极致并且简单易用的Java JSON库。
- 是项目的重要升级,和FASTJSON 1相比,性能有非常大的提升,解决了autoType功能因为兼容和白名单的安全性问题。
- 性能极致,性能远超过其他流行 JSON 库,包括 jackson/gson/org.json,性能数据: https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark
- 支持JDK新特性,包括/,针对优化,支持Record,支持
- 完善的支持,支持 SQL:2016 的 语法
- 支持,客户端和服务器一套 API
- 支持 https://alibaba.github.io/fastjson2/kotlin_cn
- 支持 https://alibaba.github.io/fastjson2/json_schema_cn
- 新增加支持二进制格式 JSONB https://alibaba.github.io/fastjson2/jsonb_format_cn
总得来说,提高了性能(拳打 Gson,脚踢 Jackson)和饱解决了饱受诟病的安全问题(因为 屡次爆出反序列化安全问题,在国内被戏称为 Bugjson)。
Fastjson2 确实一个款性能很高的 Json 库,API 也设计得比较简单、易用。本文将带你了解如何在 Spring 中使用 Fastjson2。
采用 多模块 的结构设计,对 Spring 等框架的支持现独立在 包中。
版本之后为了兼容 Spring 5.x / 6.x,将不同的版本独立出来了。
使用 Maven:
使用 Gradle:
如过你使用的是 Fastjson2 之前的版本,则可以直接使用以下依赖。
使用 Maven:
使用 Gradle:
Fastjson2 对于序列化和反序列化的行为进行了重新设计,所以 也会重新适配。
配置类 的可配置参数如下表:
可以使用 Fastjson2 中的 和 为 Spring MVC 构建的 Web 应用提供更好的性能体验。
使用 来替换 Spring MVC 默认的 以提高 、 和 注解的 JSON 序列化和反序列化速度。
的配置示例如下:
使用 来设置 Spring MVC 默认的视图模型解析器,以提高 JSON 序列化速度。
配置实例如下:
参考:Spring 中文文档的 Spring Web MVC 部分。
Fastjson2 同样也对 Spring WebSocket 提供了支持。可以使用 进行配置。
配置示例如下:
参考:Spring 中文文档 Spring WebSocket 部分 。
同样可以使用 Fastjson2 中的 或 为 Spring Data Redis 提供更好的性能体验。
使用 作为 的 来提升 JSON 序列化和反序列化速度。
配置示例如下:
通常使用 即可满足大部分场景,如果你想定义特定类型专用的 可以使用 来代替 ,配置和上面类似。
配置示例如下:
如果你准备使用 JSONB 作为对象序列/反序列化的方式并对序列化速度有较高的要求的话,可以对 jsonb 参数进行配置,该参数是 fastjson 版本中新增的支持,配置也很简单。
配置示例如下:
参考:Spring Data Redis 中文文档。
在Fastjson2中,同样可以使用 为 Spring Messaging 提供更好的性能体验。
使用 在 Spring Cloud Stream 或 Spring Messaging 中提升 Message 的序列化和反序列化速度。
配置示例如下:
如果你准备使用 JSONB 作为对象序列/反序列化的方式并对序列化速度有较高的要求的话,可以对 的 参数进行配置,该参数是 fastjson 版本中新增的支持,配置也很简单。
注意:JSONB 仅支持将 Message 的 Payload 序列化为 !
配置示例如下:
参考:Spring Messaging 中文文档。
Ref:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/9140.html