13个版本 (5个重大变更)
0.6.0 | 2022年9月9日 |
---|---|
0.5.0 | 2022年8月18日 |
0.4.0 | 2022年8月10日 |
0.3.0 | 2022年8月9日 |
0.1.10 | 2020年10月30日 |
#2693 in 解析器实现
每月75次下载
用于 8 个crate(7个直接使用)
155KB
4.5K SLoC
JSONA CLI
A JSONA解析器、分析器和格式化库。更多信息请访问网站。
lib.rs
:
关于
库的主要目的是提供分析JSONA数据的工具,其中必须保留布局,并且必须知道每个解析标记的原始位置。它还可以格式化JSONA文档。
它使用Rowan构建语法树,并且保留输入中的每个字符,包括所有注释和空白。
可以构建一个DOM,用于面向数据的分析,其中每个节点都封装了一部分语法树以及额外的信息和功能。
特性
- serde:支持对DOM节点的serde序列化。
用法
首先使用parse解析JSONA文档,它将构建一个可以遍历的语法树。
如果解析过程中没有语法错误,则可以构建一个dom::Node
。它将构建一个DOM树并根据规范验证JSONA文档。即使在存在语法错误的情况下,也可以构建DOM树,但其中某些部分可能缺失。
use jsona::parser::parse;
const SOURCE: &str = r#"
{
createPost: { @describe("Create a blog post") @mixin(["createPost", "auth1"])
req: {
body: {
content: "paragraph", @mock
}
},
res: {
body: {
id: 0, @type
userId: 0, @type
content: "", @type
}
}
}
}
"#;
let parse_result = parse(SOURCE);
// Check for syntax errors.
// These are not carried over to DOM errors.
assert!(parse_result.errors.is_empty());
let root_node = parse_result.into_dom();
依赖项
~4.5MB
~59K SLoC