This is a fork of jmespath.rs that preserves order. It is highly incompatible with the code upstream, probably someone who wants to take over and add this as a feature, this would be a nice addition to the library.
Rust implementation of JMESPath, a query language for JSON.
This crate is on crates.io and can be used
by adding jmespath
to the dependencies in your project's Cargo.toml
.
[dependencies]
jmespath = "^0.3.0"
If you are using a nightly compiler, or reading this when specialization in Rust
is stable (see rust#31844), then
enable the specialized
feature to switch on usage of specialization to get more
efficient code:
[dependencies.jmespath]
version = "^0.3.0"
features = ["specialized"]
extern crate jmespath;
let expr = jmespath::compile("foo.bar").unwrap();
// Parse some JSON data into a JMESPath variable
let json_str = r#"{"foo": {"bar": true}}"#;
let data = jmespath::Variable::from_json(json_str).unwrap();
// Search the data with the compiled expression
let result = expr.search(data).unwrap();
assert_eq!(true, result.as_boolean().unwrap());