fastjson 2.0.6发布,修复BUG提升兼容性
1. FASTJSON 2.0介绍
FASTJSON 2.0是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库,同一套API支持JSON/JSONB两种协议,JSONPath是一等公民,支持全量解析和部分解析,支持Java服务端、客户端Android、大数据场景。
- FASJTONS2项目地址 https://github.com/alibaba/fastjson2
- 使用介绍 https://alibaba.github.io/fastjson2/
- FASTJSON 2性能有了很大提升,具体性能数据看这里 https://alibaba.github.io/fastjson2/benchmark_cn
- FASTJSON 2的AutoType没有内置白名单,更安全 https://alibaba.github.io/fastjson2/autotype_cn
- 支持JSONSchema https://alibaba.github.io/fastjson2/json_schema_cn
- 支持JDK14 Record
- 支持GraalVM Native-Image
2. FASTJSON 2.0.6版本 介绍
经过众多勇敢热心同学的验证,2.0.6已经具备生产可用的能力,但由于是初期版本,使用到生产还需要仔细观察验证,如果遇到问题反馈提issue到 https://github.com/alibaba/fastjson2/issues 。
2.0.6的兼容性也有很大改善,如果不想改代码的同学,可以尝试直接使用2.0.6的兼容包升级。
Issues
- 修复getObject方法不能自动识别非camalCase fieldName的问题 #402
- 修复JSONB格式反序列化List报错的问题 #385
- 新增加JSONReader.Feature DuplicateKeyValueAsArray,重复属性不是替换而是组合成数组 #379 #263
- 修复ReadOnly Collection字段反序列化某些场景抛空指针的问题 #397
- 修复fastjson 1.x兼容API中Feature.OrderedField不生效的问题 #394
- 修复fastjson 1.x兼容API中返回fastjson2的JSONArray导致类型不匹配的问题 #399
- 修复JSONB格式反序列化使用com.google.common.collect.Lists.transform报错的问题 #400
- 修复不支持fastjson 1.x JSONField.jsonDirect配置的问题 #398
- 修复WriteNulls & NullAsDefaultValue输出结果不对的问题 #372 #391
- 修复某些场景配置JSONField.format='392'不生效的问题 #392
- 修复某些API不能支持null和空字符串输入的问题 #389
- 修复集成spring-doc导致文档无法显示的问题 #387
- 修复graalvm编译native-image报错,框架使用quarkus报错的问题 #386
- 修复兼容fastjson 1.x API不支持JSONField.deserializeUsing的问题 #388
- 新增JSONReader.Feature AllowUnQuotedFieldNames,同时兼容fastjson 1.x #383
- 新增反序列化支持配置代替JSONObject/JSONArray的支持 #384
- 修复JSONField.format在context配置format后优先级不对的问题 #380
- 修复某些场景处理引用不对的问题 #377 #378
- 修复Android兼容的问题 #375
- 修复无法反序列化Class<?>对象的问题 #369
- 修复Android下某些场景kotlin报错的问题 #370
2.1 定制序列化介绍
FASTJSON2支持完善的定制序列化反序列化功能
- Feature介绍 https://alibaba.github.io/fastjson2/features_cn
- Annotation介绍 https://alibaba.github.io/fastjson2/annotations_cn
- 使用Mixin注入Anntation定制序列化和反序列化 https://alibaba.github.io/fastjson2/mixin_cn
- 实现ObjectWriter和ObjectReader实现定制序列化和反序列化 https://alibaba.github.io/fastjson2/register_custom_reader_writer_cn
3. MAVEN依赖配置
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.6</version>
</dependency>
- GraalVM版本
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.6.graal</version>
</dependency>
- Android版本
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.6.android</version>
</dependency>
- 1.x 兼容版本
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.6</version>
</dependency>
相关链接
- 相关issue 29个 https://github.com/alibaba/fastjson2/milestone/5
- 代码tag https://github.com/alibaba/fastjson2/releases/tag/2.0.6
- 标准版本 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.6/
- graal支持版本 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.6.graal/ (仅在GraalVM 22.1 JDK17上做过验证)
- android版本 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.6.android/
- 1.x兼容版本 https://repo1.maven.org/maven2/com/alibaba/fastjson/2.0.6/