4个版本
0.1.3 | 2021年5月2日 |
---|---|
0.1.2 | 2021年4月29日 |
0.1.1 | 2021年1月28日 |
0.1.0 | 2021年1月18日 |
#58 in #aims
每月 21 次下载
用于 2 个crate(通过 spparse)
4KB
62 行
Spparse(稀疏指针解析器)
简介
现代JSON
/YAML
通常使用JSON指针。这个crate旨在简化其使用。
建立在serde之上,这个库允许以通用方式读取和修改包含$ref
的文档。
功能
以下功能可用
url
:添加对url::Url
的支持semver
:添加对semver::Version
的支持
示例
#[derive(Debug, Deserialize, Serialize, Sparsable)]
struct ObjectExampleParsed {
hello: String,
obj: HashMap<String, SparseSelector<String>>,
}
fn main() {
let json_value = json!({
"hello": "world",
"obj": {
"key1": {
"$ref": "#/hello"
}
}
});
let parsed_obj: SparseRoot<ObjectExampleParsed> =
SparseRoot::new_from_value(json_value, PathBuf::from("hello.json"), vec![]).unwrap();
println!(
"{}",
parsed_obj
.root_get()
.unwrap()
.obj
.get("key1")
.unwrap()
.get()
.expect("the dereferenced pointer")
);
}
// Prints "world"
依赖项
~2MB
~46K SLoC