You can use it as a drop-in replacement for JSONPath, but also for other semi-structured data formats like TOML or user-defined variants.
Here is a quick example that shows how to use the spath
crate to query JSONPath alike expression over JSON data:
use serde_json::json;
use serde_json::Value;
use spath::SPath;
use spath::VariantValue;
fn main() {
let data = json!({
"name": "John Doe",
"age": 43,
"phones": [
"+44 1234567",
"+44 2345678"
]
});
let spath = SPath::new("$.phones[1]").unwrap();
let result = spath.eval(&data).unwrap();
assert_eq!(result, json!("+44 2345678"));
}
spath
is on crates.io and can be used by adding spath
to your dependencies in your project's Cargo.toml
. Or more simply, just run cargo add spath
.
This project is licensed under Apache License, Version 2.0.