fastjson 2.0.7发布,修复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://github.com/alibaba/fastjson2/wiki/benchmark_2.0.7_aarch64
- 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.7版本 介绍
经过很多用户在生产环境验证,2.0.7已经具备生产可用的能力,但由于是初期版本,使用到生产还需要仔细观察验证,如果遇到问题反馈提issue到 https://github.com/alibaba/fastjson2/issues 。
2.0.7继续提升的兼容性,如果不想改代码的同学,可以尝试直接使用2.0.7的兼容包升级,兼容包是计划长期维护的,如果发现问题提issue反馈。
Issues
- 修复了部分场景JSON.isValid方法在某些场景不能识别非法JSON格式的问题 #410
- 修复JSONPath.set在已有值存在时缺省采用DuplicateKeyValueAsArray行为的问题 #431
- 修复JSONPath.set在父层次对象不存在时结果不对的问题 #424
- 提升了fastjson 1.x的兼容性 #432
- 修复了filter导致WriteClassName失效的问题 #411
- 修复了不能LocalDate/LocalTime不能智能匹配日期格式的问题 #LocalDate #356 #416 #425
- 优化常见日期类型的序列化和反序列化性能 #137
- 修复了List类型不支持非数组单个元素输入的问题 #409 #426
- 修复某些场景Exception类型字段不能正确反序列化的问题 #362
- 修复了WriteClassName启用后,Byte/Short/Float/Double/Long/Date在某些场景反序列化类型丢失的问题 #412 #381 #454
- 修复了报错是文案不友好的问题 #414
- 修复了日期类型对日期格式支持不完整的问题 #413
- 修复了Float/Double序列化NaN/INFINITY/NEGATIVE_INFINITY不以null输出的问题 #423
- BigDecimal类型支持MongoDB Decimal128格式 #427
- 修复boolean不支持空字符串输入的问题 #429
- 新增JSONWriter.Feature.NotWriteEmptyArray,支持序列化时不输出空集合和空数组
- 修复不可见字符输出格式不对的问题 #435
- 修复JSONWriter.Feature.FieldBased打开时JSONField在某些类型字段上不生效的问题 #445
- 提升fastjson 1.x API的兼容性 #446
- 修复某些场景Kotlin序列化Map类型报错的问题 #440
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.7</version>
</dependency>
- GraalVM版本
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.7.graal</version>
</dependency>
- Android版本
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.7.android</version>
</dependency>
- 1.x 兼容版本
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.7</version>
</dependency>
相关链接
- 相关issue 27个 https://github.com/alibaba/fastjson2/milestone/6
- 代码tag https://github.com/alibaba/fastjson2/releases/tag/2.0.7
- 标准版本 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.7/
- graal支持版本 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.7.graal/ (仅在GraalVM 22.1 JDK17上做过验证)
- android版本 https://repo1.maven.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.7.android/
- 1.x兼容版本 https://repo1.maven.org/maven2/com/alibaba/fastjson/2.0.7/