11 个版本 (6 个稳定版)
1.1.3 | 2024年7月25日 |
---|---|
1.1.2 | 2020年2月1日 |
1.1.0 | 2019年2月8日 |
1.0.1 | 2017年1月2日 |
0.0.1 | 2015年5月6日 |
#635 在 解析器实现
每月413次下载
用于 5 个crate (3 个直接使用)
30KB
550 行
此库包含一组工具,用于帮助与 JSON 编码数据交互。
特性
- 简单的 JSON 词法分析器
- 虽然无意实现所有功能,但它能够将 ASCII JSON 数据流分割成它们的词法符号,并跟踪构成它们的字符范围。
- 便于编写高级解析器和过滤器
- 键值过滤器
- 一个实用程序,用于过滤属于具有给定类型值的键的词法符号。这使得重新组装 JSON 数据流并剥离其 null 值变得容易,例如。
- TokenReader
- 一个适配器,用于将
Tokens
流转换为字节流,支持Read
特性。 - 使用它将过滤和/或操作过的符号流转换回字节流。
- 配置输出样式,以实现如格式化输出或删除所有空白字符的效果。
- 一个适配器,用于将
用法
将此添加到您的 Cargo.toml
[dependencies]
json-tools = "*"
将此添加到您的库 ...
use json_tools::BufferType;
use json_tools::Lexer;
for token in Lexer::new(r#"{ "face": "😂" }"#.bytes(), BufferType::Span) {
println!("{:?}", token);
}
动机
由于该库是为了解决 serde
中缺失的功能而创建的,因此它可能永远不会比最初提到的两个功能更大。
手册
使用 cargo test
运行测试,并使用 cargo bench
运行基准测试(在稳定版上工作)。
许可证
根据以下任一许可证授权
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可中定义的,您有意提交供作品包含的贡献,应以上述方式双授权,不附加任何额外条款或条件。