A crate for parsing and using JSON pointers, as specified in RFC 6901.
JSON pointers can be created with a literal [&str]
, or parsed from a String
.
```rust
let from_strs = JsonPointer::new([
"foo"
"bar",
]);
let parsed = "/foo/bar".parse::
asserteq!(fromstrs.unwrap(), parsed.unwrap()); ```
The JsonPointer
type provides .get()
and .get_mut()
, to get references
and mutable references to the appropriate value, respectively.
```rust // where ptr is either of the JsonPointers from above.
let document = json!({ "foo": { "bar": 0, "baz": 1, }, "quux": "xyzzy" });
let indexed = ptr.get(&document).unwrap();
assert_eq!(indexed, &json!(0)); ```