29个版本 (重大变更)
0.23.0 | 2023年10月27日 |
---|---|
0.22.1 | 2023年7月27日 |
0.21.1 | 2023年4月28日 |
0.21.0 | 2022年8月5日 |
0.12.2 | 2020年6月7日 |
#1 in #ast-parser
每月106,182次下载
用于 50个 crate (26 个直接使用)
71KB
2K SLoC
jsonc-parser
使用Rust实现的JSONC解析器。
示例
转换为简单的JsonValue
use jsonc_parser::parse_to_value;
let json_value = parse_to_value(r#"{ "test": 5 } // test"#, &Default::default())?;
// check the json_value here
或AST
use jsonc_parser::parse_to_ast;
use jsonc_parser::CollectOptions;
let parse_result = parse_to_ast(r#"{ "test": 5 } // test"#, &CollectOptions {
comments: true, // include comments in result
tokens: true, // include tokens in result
}, &Default::default())?;
// ...inspect parse_result for value, tokens, and comments here...
Serde
如果您按照以下方式启用"serde"
功能
# in Cargo.toml
jsonc-parser = { version = "...", features = ["serde"] }
然后您可以使用parse_to_serde_value
函数获取一个serde_json::Value
use jsonc_parser::parse_to_serde_value;
let json_value = parse_to_serde_value(r#"{ "test": 5 } // test"#, &Default::default())?;
或者,使用parse_to_ast
然后调用.into()
(例如 let value: serde_json::Value = ast.into();
).
严格按JSON解析
提供ParseOptions
并将所有选项设置为false
use jsonc_parser::parse_to_value;
use jsonc_parser::ParseOptions;
let json_value = parse_to_value(text, &ParseOptions {
allow_comments: false,
allow_loose_object_property_names: false,
allow_trailing_commas: false,
})?;
依赖关系
~0–440KB