YStudio Y++

查询串类(扩展类库)

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

URL 查询参数? 后面 a=1&b=2 部分)的键值容器,类似 Qt QUrlQuery。常与 网址类HTTP类 配合:从网址取出查询串 → 改参数 → 拼回 URL 或提交请求。

支持库路径:扩展类库 → 查询串类


快速开始

函数 主窗口.创建完毕 () {
    查询串类 q

    // 解析(可带或不带前导 ?)
    q.解析 ("name=张三&age=18")
    输出 (q.取值 ("name"))              // 张三(已 URL 解码)

    q.置值 ("token", "abc+123")
    q.移除 ("age")

    // 真 = 输出时做 URL 编码(空格→+,中文→%E4%B8%AD…)
    输出 (q.到文本 (真))                  // name=%E5%BC%A0%E4%B8%89&token=abc%2B123

    整数 i = 0
    循环 (i < q.取数量 ()) {
        输出 (q.取键 (i))
        i = i + 1
    }
}

与网址类配合

网址类 u
u.解析 ("https://api.example.com/search?q=hello&page=1")

查询串类 q
q.解析 (u.取查询 ())        // 从网址取出 ? 后部分

q.置值 ("page", "2")
q.置值 ("q", "世界")

u.置查询 (q.到文本 (真))    // 写回网址
输出 (u.到文本 ())            // https://api.example.com/search?q=...&page=2

编码规则

操作 行为
解析 自动 URL 解码%XX+→空格)
到文本(假) 原样拼接 键=值&键=值(不再编码)
到文本(真) 对键、值分别 URL 编码 后拼接

同名键

  • 置值(键, 值):若键已存在则覆盖该键的值(保留一个)。
  • 取值(键):返回最后一次写入的值。
  • 移除(键):删除该键所有条目。

方法一览

方法 返回 说明
解析(文本) 逻辑 解析查询串;空串也成功
到文本([编码=假]) 文本 拼成 a=1&b=2
取值(键) 文本 不存在返回空文本
置值(键, 值) 逻辑 设置/覆盖
移除(键) 逻辑 删除键;不存在返回假
是否有(键) 逻辑 是否包含键
取数量() 整数 键值对个数
取键(索引) 文本 从 0 起的第几个键名
清空() 清空全部
取错误() 文本 最近错误(一般为空)

常见错误

  1. 忘记编码就提交 HTTP — 含中文或特殊字符时用 到文本(真)
  2. 把完整 URL 传给解析 — 只传 ? 后部分;完整 URL 请先用 网址类取查询()
  3. 取值当整数用 — 返回的是文本,需要时自行 到整数( q.取值("page") )