3 个稳定版本

2.3.1 2023年1月11日
2.3.0 2022年11月16日
2.2.0 2022年11月16日

#20#encoded-string

Download history 17/week @ 2024-03-11 16/week @ 2024-03-18 15/week @ 2024-03-25 107/week @ 2024-04-01 40/week @ 2024-04-08 17/week @ 2024-04-15 47/week @ 2024-04-22 8/week @ 2024-04-29 8/week @ 2024-05-06 10/week @ 2024-05-13 12/week @ 2024-05-20 9/week @ 2024-05-27 37/week @ 2024-06-03 15/week @ 2024-06-10 24/week @ 2024-06-17 56/week @ 2024-06-24

133 每月下载量

MIT 许可证

21KB
500

什么是 better-qs?

better-qs 是一个受 https://github.com/hapijs/qs 启发的 Rust 查询字符串解析库。从 queryst 衍生而来。

# Cargo.toml

[dependencies]
better-qs = "2"

API 文档

用法

使用 queryst 库将查询字符串解析为相应的 json 值

use queryst::parse;

// will contain result as Json value
let object = parse("foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb");

描述

queryst 允许您在查询字符串中创建嵌套对象,通过将子键的名称用方括号 [] 包围起来。例如,字符串 'foo[bar]=baz' 转换为以下 JSON

{
  "foo": {
    "bar": "baz"
  }
}

URI 编码字符串也可以

parse('a%5Bb%5D=c');
// { "a": { "b": "c" } }

您还可以嵌套对象,例如 'foo[bar][baz]=foobarbaz'

{
  "foo": {
    "bar": {
      "baz": "foobarbaz"
    }
  }
}

解析数组

queryst 还可以使用类似的 [] 语法解析数组

parse('a[]=b&a[]=c');
// { "a": ["b", "c"] }

您还可以指定一个索引

parse('a[0]=c&a[1]=b');
// { "a": ["c", "b"] }

注意,数组中的索引与对象中的键之间的唯一区别是,方括号之间的值必须是数字以创建数组。

queryst 不允许 在数组中指定稀疏索引,并将目标数组转换为对象

parse('a[1]=b&a[15]=c');
// { "a": {"1": "b", "15": "c"} }

如果您混合了两种语法,queryst 将将这两个项目合并为一个对象

parse('a[0]=b&a[b]=c');
// { "a": { "0": "b", "b": "c" } }

您还可以创建对象数组

parse('a[][b]=c');
// { "a": [{ "b": "c" }] }

依赖项

~0.7–2MB
~41K SLoC