# 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。