跳到主要内容
版本:1.7

概述

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
部署到 AndroidAndroid
构建 GraalVM Native ImageGraalVM Native Image
安全解码输入安全
诊断故障故障排查

性能

Java JSON 基准测试使用相同数据对比 fory-json、Jackson 和 Gson。以下结果是在 Apple M4 Pro 与 JDK 26.0.1 上测得的单线程吞吐量,数值越高越好。完整命令、环境和测量配置请参阅 完整基准测试报告

Java JSON String 基准测试吞吐量

Java JSON UTF-8 字节基准测试吞吐量

表示形式操作fory-json ops/secjackson ops/secgson ops/sec
String序列化7,387,4652,049,3681,084,042
String反序列化2,897,9551,074,885902,772
UTF-8 字节序列化10,375,4981,868,6141,037,211
UTF-8 字节反序列化3,077,1581,268,397933,079

相关 Java 指南

二进制序列化请从 Java 对象序列化开始,并选择 xlangnative。 二进制 builder 选项另见 Java 配置