Docs.rs
  • jsonpath-rust-1.0.2
    • jsonpath-rust 1.0.2
    • Permalink
    • Docs.rs crate page
    • MIT
    • Links
    • Homepage
    • Repository
    • crates.io
    • Source
    • Owners
    • besok
    • Dependencies
      • pest ^2.7.15 normal
      • pest_derive ^2.7.15 normal
      • regex ^1 normal
      • serde_json ^1.0 normal
      • thiserror ^2.0.9 normal
      • criterion ^0.5.1 dev
      • serde ^1.0 dev
    • Versions
    • 32.16% of the crate is documented
  • Platform
    • i686-pc-windows-msvc
    • i686-unknown-linux-gnu
    • x86_64-apple-darwin
    • x86_64-pc-windows-msvc
    • x86_64-unknown-linux-gnu
  • Feature flags
  • Rust
    • About docs.rs
    • Privacy policy
    • Rust website
    • The Book
    • Standard Library API Reference
    • Rust by Example
    • The Cargo Guide
    • Clippy Documentation

Crate jsonpath_rust

jsonpath_rust1.0.2

  • All Items

Sections

  • Json path
  • Simple example
  • Another examples
  • Operators

Crate Items

  • Modules
  • Macros
  • Traits

Crates

  • jsonpath_rust

Crate jsonpath_rust

Source
Expand description

§Json path

The library provides the basic functionality to find the slice of data according to the query. The idea comes from xpath for xml structures. The details can be found over there Therefore JSONPath is a query language for JSON, similar to XPath for XML. The jsonpath query is a set of assertions to specify the JSON fields that need to be verified.

§Simple example

Let’s suppose we have a following json:

 {
  "shop": {
   "orders": [
      {"id": 1, "active": true},
      {"id": 2 },
      {"id": 3 },
      {"id": 4, "active": true}
    ]
  }
}

And we pursue to find all orders id having the field ‘active’ we can construct the jsonpath instance like that $.shop.orders[?(@.active)].id and get the result [1,4]

§Another examples

{ "store": {
    "book": [
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
      },
      { "category": "fiction",
        "author": "Herman Melville",
        "title": "Moby Dick",
        "isbn": "0-553-21311-3",
        "price": 8.99
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 19.95
    }
  }
}

and examples

  • $.store.book[*].author : the authors of all books in the store
  • $..book[?(@.isbn)] : filter all books with isbn number
  • $..book[?(@.price<10)] : filter all books cheapier than 10
  • $..* : all Elements in XML document. All members of JSON structure
  • $..book[0,1] : The first two books
  • $..book[:2] : The first two books

§Operators

  • $ : Pointer to the root of the json. It is gently advising to start every jsonpath from the root. Also, inside the filters to point out that the path is starting from the root.
  • @Pointer to the current element inside the filter operations.It is used inside the filter operations to iterate the collection.
  • * or [*]Wildcard. It brings to the list all objects and elements regardless their names.It is analogue a flatmap operation.
  • <..>| Descent operation. It brings to the list all objects, children of that objects and etc It is analogue a flatmap operation.
  • .<name> or .['<name>']the key pointing to the field of the objectIt is used to obtain the specific field.
  • ['<name>' (, '<name>')]the list of keysthe same usage as for a single key but for list
  • [<number>]the filter getting the element by its index.
  • [<number> (, <number>)]the list if elements of array according to their indexes representing these numbers. |
  • [<start>:<end>:<step>]slice operator to get a list of element operating with their indexes. By default step = 1, start = 0, end = array len. The elements can be omitted [:]
  • [?(<expression>)]the logical expression to filter elements in the list.It is used with arrays preliminary.

Modules§

parser
query

Macros§

and
arg
atom
cmp
comparable
filter_
jq
lit
or
q_segment
q_segments
segment
selector
singular_query
slice
test
test_fn

Traits§

JsonPath
A trait for types that can be queried with JSONPath.

Results

Settings
Help
    method
    jsonpath_rust::query::QueryRef::path
    function
    jsonpath_rust::query::js_path
    The main function to process a JSONPath query. It takes a …
    function
    jsonpath_rust::query::js_path_path
    A convenience function to process a JSONPath query and …
    function
    jsonpath_rust::query::js_path_vals
    A convenience function to process a JSONPath query and …
    function
    jsonpath_rust::query::js_path_process
    A convenience function to process a JSONPath query and …
    trait
    jsonpath_rust::JsonPath
    A trait for types that can be queried with JSONPath.
    extern crate
    jsonpath_rust
    Json path
    enum
    jsonpath_rust::parser::errors::JsonPathError
    This error type is used to represent errors that can occur …
    type alias
    jsonpath_rust::query::QueryPath
    A type that can be queried with JSONPath, typically string
    enum variant
    jsonpath_rust::parser::errors::JsonPathError::NoRulePath
    enum variant
    jsonpath_rust::parser::errors::JsonPathError::NoJsonPathField
    enum variant
    jsonpath_rust::parser::errors::JsonPathError::NoJsonPathDescent
    function
    jsonpath_rust::parser::parse_json_path
    Parses a string into a [JsonPath].
    method
    jsonpath_rust::JsonPath::query_only_path
    Queries the value with a JSONPath expression and returns a …
    method
    jsonpath_rust::JsonPath::query_with_path
    Queries the value with a JSONPath expression and returns a …
    enum variant
    jsonpath_rust::parser::errors::JsonPathError::InvalidJsonPath
No results :(
Try on DuckDuckGo?

Or try looking in one of these:
  • The Rust Reference for technical details about the language.
  • Rust By Example for expository code examples.
  • The Rust Book for introductions to language features and the language itself.
  • Docs.rs for documentation of crates released on crates.io.
No results :(
Try on DuckDuckGo?

Or try looking in one of these:
  • The Rust Reference for technical details about the language.
  • Rust By Example for expository code examples.
  • The Rust Book for introductions to language features and the language itself.
  • Docs.rs for documentation of crates released on crates.io.