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

MIT/Apache

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