跳到主要内容
版本:dev

故障排查

现象可能原因与处理方式
解析时出现 ForyJsonExceptionJSON 语法无效、类型不匹配、映射不受支持、违反深度或对象图内存限制、validator 失败,或存在尾随内容
InsecureExceptionFory 禁止列表或配置的 JsonTypeChecker 拒绝了某个类
builder 抛出 IllegalArgumentException检查配置的深度、对象图内存、并发、保留缓冲区和缓存字段名限制
声明类型写入被拒绝值不可赋给声明类型、类型包含通配符或类型变量,或者向基本类型提供了 null
不可变值未填充使用 record、有效的 JsonCreator 或精确的自定义 codec
JsonValue 读取失败添加一个接收普通 StringJsonCreator,或注册精确的自定义 codec
原始 JSON 输出无效JsonRawValue 属性提供且只提供一个可信的完整 JSON 值
无法构造普通对象添加可用的无参 constructor、使用 record 或 JsonCreator,或注册自定义 codec;Android 和 GraalVM Native Image 的要求更严格
普通 accessor 注解失败方法不是有效的 public JavaBean accessor,或已启用 field mode
Any 注解失败只使用一种基于字段的形式,或一对类型解析为 Map<String, V> 的有效方法形式;方法注解要求关闭 field mode
Codec 注解失败解决同一节点或继承层次冲突、移除被隐藏的嵌套覆盖,或使用具有 public 无参 constructor 的 codec 类
子类型被拒绝写入时未声明基类、运行时类不是类型表中的精确条目,或输入 JSON 结构与配置的包含方式不一致
无法读取 Collection目标应为受支持的接口或常见实现,也可以注册自定义 codec
OutputStream 写入失败底层 IOException 被包装为 ForyJsonException 的 cause

Fory JSON 的映射、语法、codec、深度、对象图内存、validator 和输出失败使用 ForyJsonException。用户 codec 代码仍可能抛出自己的运行时异常。除 Error 以外的 creator 和 validator 失败会连同原始 cause 一起包装。