Fastjson2 Maven

Fastjson2 作为阿里巴巴自研的下一代 JSON 库,凭借其极致的性能和更安全的架构,已逐渐成为 Java 开发者的首选。为了方便大家在项目中快速集成,本文整理了 Fastjson2 的 Maven 依赖配置、主流版本记录以及与一代版本的核心差异。

Fastjson2 Maven 核心依赖

在 Maven 项目的 pom.xml 中引入以下代码即可使用Fastjons2:

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.61</version> 
</dependency> 

Fastjson2 历史版本一览表

 Fastjson2 的迭代速度非常快,通常每月发布 1-2 个小版本以快速修复 Bug 和优化性能。建议优先选择最新版本,以保证稳定性。

版本号 (Version)发布日期 (Date)状态/建议
2.0.612026-02-07最新稳定版,优化了 JDK 21+ 支持
2.0.602026-01-15增强了 Spring MVC 7.0 适配
2.0.532024-10-252024 年末稳定推荐版本
2.0.522024-09-12修复了部分 JSONB 反序列化漏洞
2.0.502024-07-05引入了更多的 SIMD 加速算法
2.0.482024-04-18提升了对 Kotlin Serialization 的兼容性
2.0.402023-11-20长期支持建议版,修复了大量社区反馈
2.0.352023-08-10优化了内存占用,适配 GraalVM
2.0.252023-03-12重要的性能里程碑版本
2.0.242023-02-18修复了多个边界情况下的解析 Bug
2.0.102022-08-05早期稳定版
2.0.12022-04-26Fastjson2 正式发布版

Fastjson v1 和 v2 核心差异对比

很多开发者犹豫是否要从 1.x 迁移到 2.x,下表清晰展示了两者的本质区别:

特性Fastjson 1.xFastjson 2.x
核心包名com.alibaba.fastjsoncom.alibaba.fastjson2
性能优秀极致(利用 SIMD 等指令集大幅提速)
安全性曾多次曝出 AutoType 漏洞默认关闭 AutoType,采用更安全的架构设计
JDK 支持JDK 6+JDK 8+ (深度优化 JDK 11/17+)
标准兼容相对独立更好的 JSONPath 和 JSON Schema 支持
主要 APIJSON.toJSONString(), JSON.parseObject()保持兼容,但新增 JSONObject / JSONArray 接口化

快速集成 Spring Boot 示例

如果你想在 Spring MVC 中使用 Fastjson2,可以添加以下配置类:

@Configuration
public Fastjson2Config implements WebMvcConfigurer {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        // 自定义配置
        FastJsonConfig config = new FastJsonConfig();
        config.setDateFormat("yyyy-MM-dd HH:mm:ss");
        converter.setFastJsonConfig(config);
        converters.add(0, converter); // 优先级排在第一
    }
} 

总结

Fastjson2 不仅仅是 v1 的简单升级,它是一个为了现代硬件和更高安全标准重写的库。如果你正在进行新项目开发,请务必直接使用 Fastjson2。
如果你是在旧项目迁移,建议使用 fastjson2-extension 包中的兼容类,它可以让你在修改最少代码的前提下,享受到 v2 的安全性。