40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# JSON 文档
|
|
|
|
Document 用节点列表表示 JSON 树,子节点排在父节点之前。
|
|
|
|
## dever.json.value.Value
|
|
|
|
JSON 节点的六种值:null、布尔、数字、字符串、数组和对象。数字保留原始文本。
|
|
|
|
分支:
|
|
- `Null`:空值
|
|
- `Boolean(value: Bool)`:布尔值
|
|
- `Number(raw: Text)`:原始数字
|
|
- `String(text: Text)`:字符串
|
|
- `Array(children: List<Int>)`:子节点 ID
|
|
- `Object(members: Map<Text, Int>)`:字段到子节点 ID
|
|
|
|
## dever.json.value.Document
|
|
|
|
由根节点 ID 和节点列表组成的文档;节点 ID 是列表下标。
|
|
|
|
字段:
|
|
- `root`:根节点 ID
|
|
- `nodes`:按节点 ID 排列的节点列表
|
|
|
|
## dever.json.value.ParseResult
|
|
|
|
文档解析结果。失败位置从零开始,按 Unicode 码点计数。
|
|
|
|
分支:
|
|
- `Parsed(document: Document)`:解析成功
|
|
- `error Failed(position: Int, message: Text)`:解析失败
|
|
|
|
## dever.json.value.WriteResult
|
|
|
|
文档编码结果。失败包含节点 ID 和原因。
|
|
|
|
分支:
|
|
- `Written(text: Text)`:编码成功
|
|
- `error Failed(node: Int, message: Text)`:编码失败
|