跳到主要内容
版本:dev

概述

Fory JSON 是 Apache Fory 提供的线程安全 Java JSON 编解码器。它为 Java 对象、record、 基于 creator 的不可变类、常见 JDK 类型、泛型容器、自定义完整值 codec,以及通过注解声明的 有限多态提供解释执行和运行时生成的 codec。

Fory JSON 与 Fory 的 native 和 xlang 二进制协议是不同的数据格式。当系统需要与浏览器、API、 日志、配置或其他 JSON 实现交换普通 JSON 时,请使用 Fory JSON。需要跨语言 Schema 元数据、 引用标识、循环对象图或 Fory 仅二进制协议支持的功能时,请使用 Fory 二进制协议。

文档导航

目标页面
运行第一个 JSON 往返示例快速开始
了解 Java 对象映射和配置对象映射
配置属性、creator、值、validator 和子类型注解
扩展完整值、子值和 Map 键自定义 Codec
部署到 AndroidAndroid
构建 GraalVM Native ImageGraalVM Native Image
安全解码输入安全
诊断故障故障排查

限制和不支持的功能

Fory JSON 有意提供比 Fory 二进制协议和通用 Jackson 对象映射更小的语义范围:

  • 不支持共享引用标识或循环引用协议;
  • 不支持开放多态、JSON 类名 ID、运行时子类型发现,也不支持在运行时扩展子类型表;
  • 不提供 InputStream 解析器或增量式 OutputStream writer;这些能力不在 ForyJson 根 API 中;
  • 不提供美化输出配置;
  • 不提供 Jackson/Gson 注解兼容层;
  • 不支持别名、view、filter、注入、managed/back reference、对象标识注解或根包装;
  • 不处理 Fory core 的 Expose

循环对象图最终会因 maxDepth 而失败,不会被重建。需要引用标识或循环引用时,请使用 Fory core 的 native 或 xlang 二进制协议。

相关 Java 指南

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