3 releases
0.0.3 | Apr 10, 2022 |
---|---|
0.0.2 | Apr 6, 2022 |
0.0.1 | Apr 6, 2022 |
#2678 in Parser implementations
64KB
1.5K
SLoC
jsonpath_rs
A JSONPath library for rust. The idea behind this library is that it can operate on any json representation as long as it implements the SelectValue
triat. The library has an implementation for serde_json value and ivalue.
Getting Started
Add the following to your cargo.toml
[dependencies]
jsonpath_rs = { git = "https://github.com/RedisJSON/jsonpath_rs.git", branch = "master" }
Usage example:
extern crate jsonpath_rs
#[macro_use] extern crate serde_json;
fn main() {
let mut query = jsonpath_rs::compile("$..friends[0]");
let path = jsonpath_rs::create(&query)
let json_obj = json!({
"school": {
"friends": [
{"name": "foo1", "age": 20},
{"name": "foo2", "age": 20}
]
},
"friends": [
{"name": "foo3", "age": 30},
{"name": "foo4"}
]
});
let json = path.calc(&json_obj);
assert_eq!(json, vec![
&json!({"name": "foo3", "age": 30}),
&json!({"name": "foo1", "age": 20})
]);
}
Tests
jsonpath_rs
pass Almost all the tests on https://github.com/freestrings/jsonpath, to run the tests:
cargo test
Dependencies
~5MB
~95K SLoC