35 个版本
0.12.5 | 2024 年 7 月 3 日 |
---|---|
0.12.3 | 2024 年 4 月 2 日 |
0.12.2 | 2024 年 2 月 21 日 |
0.10.0 | 2023 年 10 月 19 日 |
0.6.1 |
|
#344 在 解析实现 中
25,271 每月下载量
在 71 个 包 (28 直接) 中使用
190KB
6K SLoC
严格的 JSON 解析和映射库
此库提供符合 RFC 8259 和 ECMA-404 的严格 JSON 解析器。它基于 locspan
库构建,以跟踪解析文档中每个 JSON 值的位置。
特性
- 严格实现 RFC 8259 和 ECMA-404。
- 无栈溢出,您的内存是限制。
- 由于使用了
json-number
包,数字以词法形式存储,其精度不受限制。 - 保留重复值。JSON 对象只是一个按定义顺序的条目列表。
- 尽可能在堆栈上存储字符串,这是通过
smallstr
包实现的。 - 解析器可配置以接受不完全符合标准的文档。
- 高度可配置的打印方法。
- 宏用于静态构建任何值。
- 启用了
canonicalization
功能的 JSON 规范化方案实现 (RFC 8785)。 serde
支持(通过启用serde
功能)。- 经过彻底测试。
使用
use std::fs;
use json_syntax::{Value, Parse, Print};
let filename = "tests/inputs/y_structure_500_nested_arrays.json";
let input = fs::read_to_string(filename).unwrap();
let mut value = Value::parse_str(&input, |span| span).expect("parse error");
println!("value: {}", value.pretty_print());
许可证
根据以下任一项许可:
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在作品中的任何贡献均应按上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~5MB
~95K SLoC