概述
Fory JSON 是 Apache Fory 面向 Java、Kotlin 和 Scala 的线程安全 JSON 编解码器。它为 Java 对象、Record、基于 creator 的不可变类、常见 JDK 类型、泛型容器、Kotlin 模型与语义类型、Scala 模型与集合,以及自定义完整值编解码器提供解释执行和代码生成支持。
Fory JSON 与 Fory 的 native 和 xlang 二进制协议是不同的数据格式。当系统需要与浏览器、API、 日志、配置或其他 JSON 实现交换普通 JSON 时,请使用 Fory JSON。需要跨语言 Schema 元数据、 引用标识、循环对象图或 Fory 仅二进制协议支持的功能时,请使用 Fory 二进制协议。
文档导航
| 目标 | 页面 |
|---|---|
| 运行第一个 JSON 往返示例 | 快速开始 |
| 了解 Java 对象映射和配置 | 对象映射 |
| 配置属性、creator、值、validator 和 Mixin | 注解 |
| 扩展完整值、子值和 Map 键 | 自定义 Codec |
| 打包并分发可复用的 JSON 扩展 | 模块 |
| 使用 data class、Kotlin 可空性、默认值和值类型 | Kotlin |
| 使用 case class、Scala 集合和 Scala 枚举 | Scala |
| 部署到 Android | Android |
| 构建 GraalVM Native Image | GraalVM Native Image |
| 安全解码输入 | 安全 |
| 诊断故障 | 故障排查 |
性能
Java JSON 基准测试使用相同数据对比 fory-json、Jackson 和 Gson。以下结果是在 Apple M4 Pro 与 JDK 26.0.1 上测得的单线程吞吐量,数值越高越好。完整命令、环境和测量配置请参阅 完整基准测试报告。


| 表示形式 | 操作 | fory-json ops/sec | jackson ops/sec | gson ops/sec |
|---|---|---|---|---|
| String | 序列化 | 7,387,465 | 2,049,368 | 1,084,042 |
| String | 反序列化 | 2,897,955 | 1,074,885 | 902,772 |
| UTF-8 字节 | 序列化 | 10,375,498 | 1,868,614 | 1,037,211 |
| UTF-8 字节 | 反序列化 | 3,077,158 | 1,268,397 | 933,079 |
相关 Java 指南
二进制序列化请从 Java 对象序列化开始,并选择 xlang 或 native。 二进制 builder 选项另见 Java 配置。