jsonpath 0.1.1

JSONPath for Rust
Documentation
# JSONPath for Rust

The library is in hard development stage.

## Example

```rust
extern crate jsonpath;
extern crate serde_json;

use jsonpath::Selector;
use serde_json::Value;

fn main() {
    let jsondoc = r#"
        {
             "books": [
                 {
                     "title": "Der schwarze Obelist",
                     "author": "Erich Maria Remarque"
                 },
                 {
                     "title": "Le mur",
                     "author": "Jean-Paul Sartre"
                 }
             ]
        }
    "#;

    // Parse JSON document
    let json: Value = serde_json::from_str(jsondoc).unwrap();

    // Create a JSONPath selector
    let selector = Selector::new("$.books.*.title").unwrap();

    // Apply the selector to the JSON and convert Vec<&Value> into Vec<&str>
    let titles: Vec<&str> = selector.find(&json)
        .map(|t| t.as_str().unwrap())
        .collect();

    assert_eq!(titles, vec!["Der schwarze Obelist", "Le mur"]);
}
```

## Roadmap

* [ ] Operators:
  * [x] `$` - root element
  * [x] `.<name>` - named child element
  * [x] `*` - wildcard (any child item)
  * [x] `[<number>]` - indexed element in array
  * [x] `[<start>:<end>]` - slice
  * [x] `[:<end>]` - slice (to)
  * [x] `[<start>:]` - slice (from)
* [ ] Handy test helpers
* [ ] Good integration test coverage
* [ ] Benchmarks
* [ ] Refactor
* [ ] Improve error messages
* [ ] Review unwraps
* [ ] Review the public API (rename Selector -> Path ?)
* [ ] Publish a new version
* [ ] Mutable iterator
* [ ] Support filters
  * [x] `[?(<expression>)]` - Filter expression. Expression must evaluate to a boolean value.
  * [x] `@` - current element
  * [x] operator `==`
  * [x] operator `!=`
  * [x] operator `>`
  * [x] operator `<`

## License

[MIT](https://github.com/greyblake/jsonpath-rs/blob/master/LICENSE) © [Sergey Potapov](http://greyblake.com)

## Contributors

- [greyblake]https://github.com/greyblake Sergey Potapov - creator, maintainer.
- [MarcAntoine-Arnaud]https://github.com/MarcAntoine-Arnaud Marc-Antoine ARNAUD - filters support