YStudio Y++

JSON类

Y++ / YStudio 开发文档 · 一点滴

内存中的 JSON 文档对象。类型名必须写 JSON类(不要写 JSON)。

常与 HTTP类 组请求体 / 解析响应。


1. 快速开始

JSON类 j

如果 (j.解析("{\"token\":\"abc\",\"items\":[{\"id\":1},{\"id\":2}]}") == 假) {
    输出(j.取错误())
    返回()
}

输出(j.取文本("token"))           ' abc
输出(到文本(j.取整数("items[0].id")))  ' 1
输出(到文本(j.取成员数("items")))     ' 2

JSON类 req
req.置为空对象()
req.置文本("user", "u1")
req.置整数("ts", 1700000000)
文本 payload = req.到文本()        ' 紧凑 JSON 文本

从文件加载(UTF-8,可含 BOM):

j.加载("配置.json")

2. 路径语法

  • 对象成员:a.b.c
  • 数组下标:items[0].id
  • 空路径:表示

取文本 会把数字等转成文本;要整数运算用 取整数;要保留原始类型用 取数据(返回「通用」)。


3. 常用方法

方法 说明
解析(文本) 解析 JSON 字符串;失败时保留旧树
加载(路径) 从 UTF-8 文件加载
到文本([美化]) 序列化;j.到文本() ≠ 全局 到文本(j)
取错误 / 清空 错误信息;清空文档
置为空对象 / 置为空数组 把根设成 {} / []
取文本 / 取整数 / 取小数 / 取逻辑 / 取数据 按路径读取
是否存在 / 取成员数 存在性 / 数组长度或对象成员数
置文本 / 置整数 / 置小数 / 置逻辑 / 置空 按路径写入(中间路径可自动创建)
删除 按路径删除

4. 数组示例

JSON类 arr
arr.置为空数组()
arr.置整数("[0]", 9)
arr.置整数("[1]", 10)
输出(arr.到文本())   ' [9,10]

5. 注意

  • 类型名必须是 JSON类
  • 解析 失败返回假,并可通过 取错误 查看原因;成功前的文档内容是否保留以实现为准(当前失败保留旧树)。
  • 路径写错时读取通常得到空/0/假,可用 是否存在 先判断。