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。