Files
core/lib/doc/dever-json.md
2026-11-03 03:32:07 +00:00

3.0 KiB

JSON

Json 保留已验证的 JSON 内容和数字原文,支持直接解码为具体类型;Document 用于显式遍历节点。

dever.json.JsonResult

解析成功返回不透明 Json,失败保留错误文本。

分支:

  • Parsed(value: Json):解析成功
  • error Failed(message: Text):解析失败

dever.json.TextResult

读取 JSON 字符串或返回类型错误。

分支:

  • Read(value: Text):字符串值
  • error Failed(message: Text):类型错误

dever.json.IntResult

读取精确 Int 数字或返回类型错误。

分支:

  • Read(value: Int):整数值
  • error Failed(message: Text):类型错误

dever.json.fromText

从文本解析 JSON,应用 16 MiB、64 层和 65536 值限制。

dever.json.toText

返回已经验证的 JSON 原文。

dever.json.setProperty

按对象字段名替换或追加一个 JSON 子值。

dever.json.propertyValue

读取对象字段;缺失字段返回 null,非对象输入传播 PropertyResult.Failed。

dever.json.asText

读取 JSON 字符串值。

dever.json.asInteger

读取不带小数和指数的 i64 JSON 数字。

dever.json.encode

把标量、公开 record、List 或可空值编码为 Json,无需手工构造 JSON 节点。

dever.json.decode

把 Json 解码为接收位置指定的类型,例如 input: CreateInput = dever.json.decode(value)。字段或类型不符时失败。

不复制 JSON 文本、不建立 Document,不自动清洗 Text。普通 API 参数已有具体类型时无需再调用;未知结构才使用动态 Json/Document。

dever.json.parsed

取出解析后的 Json;解析失败时继续传播错误。

dever.json.parse

把 JSON 文本解析为扁平 dever.json.value.Document。

dever.json.stringify

验证并编码手工构造的 dever.json.value.Document。

dever.json.node

读取节点;缺失节点返回 null。

dever.json.property

读取对象字段的节点 ID。

dever.json.element

读取数组元素的节点 ID。

dever.json.parsedDocument

取出文档;解析失败时保留位置和原因并传播错误。

dever.json.written

取出编码文本;编码失败时继续传播错误。

dever.json.textValue

取出 JSON 字符串;类型不匹配时传播错误。

dever.json.intValue

取出 JSON 整数;类型不匹配时传播错误。

dever.json.PropertyResult

区分缺失字段和非对象输入;JSON null 是存在的 Json 值。

分支:

  • Found(value: Json?):字段值或缺失
  • error Failed(message: Text):非对象输入

dever.json.propertyResult

取出字段值;缺失字段返回 null,读取失败时传播错误。

dever.json.object

按 Map 插入顺序构造对象,写入时限制大小。

dever.json.array

按列表顺序构造 JSON 数组。

dever.json.string

转义并编码字符串。

dever.json.integer

编码精确 i64 整数。

dever.json.boolean

编码布尔值。

dever.json.nullValue

构造存在的 JSON null。