下个十年高性能 JSON 库来了:fastjson2!
fastjson2 是 fastjson 项目的重要升级,目标是为下一个十年提供一个高性能的 JSON 库,同一套 API 支持 JSON/JSONB 两种协议,JSONPath 是一等公民,支持全量解析和部分解析,支持 Java 服务端、客户端 Android、大数据场景。
fastjson 2 代码:https://github.com/alibaba/fastjson2/releases/tag/2.0.1
JSONB 格式文档:https://github.com/alibaba/fastjson2/wiki/jsonb_format_cn
fastjson 2 性能测试报告:https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark
具体使用
1.添加 fastjson 2 依赖
Maven 依赖配置如下:
2.常用类和方法
3.将字符串转换成对象
JSON 字符串转换成对象:
JSON 字符串转换成数组:
4.将对象转换成 JSON 字符串
将对象转换成 JSON 字符串:
以上程序执行结果如下:
将数组转换成 JSON 字符串:
以上程序执行结果如下:
性能测试报告
fastjson2、fastjson1 和 jackson 使用 JMH (Java Microbenchmark Harness) 在 JDK 8 和 JDK 11 的测试数据如下:
以上测试数据来自 fastjson 官网:https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark
总结
fastjson 2 相比于 fastjson 1 性能大概提升了 200%+,它的目标是成为下一个 10 年的高性能 JSON 操作工具,但如果是老项目将 fastjson 1 升级为 fastjson 2 要慎重一些,因为 fastjson 2 不保证 100% 兼容 fastjson 1。
引用 & 鸣谢
https://github.com/alibaba/fastjson2/releases
https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark
是非审之于己,毁誉听之于人,得失安之于数。
公众号:Java 面试真题解析
评论