from json-path/JsonPath: Java JsonPath implementation
handy when using jq
Operators
| Operator | Description | 
|---|---|
| $ | The root element to query. This starts all path expressions. | 
| @ | The current node being processed by a filter predicate. | 
| * | Wildcard. Available anywhere a name or numeric are required. | 
| .. | Deep scan. Available anywhere a name is required. | 
| .<name> | Dot-notated child | 
| ['<name>' (, '<name>')] | Bracket-notated child or children | 
| [<number> (, <number>)] | Array index or indexes | 
| [start:end] | Array slice operator | 
| [?(<expression>)] | Filter expression. Expression must evaluate to a boolean value. | 
Filter Operators
Filters are logical expressions used to filter arrays. A typical filter would be [?(@.age > 18)] where @ represents the current item being processed. More complex filters can be created with logical operators && and ||. String literals must be enclosed by single or double quotes ([?(@.color == 'blue')] or [?(@.color == "blue")]).
| Operator | Description | 
|---|---|
| == | left is equal to right (note that 1 is not equal to ‘1’) | 
| != | left is not equal to right | 
| < | left is less than right | 
| <= | left is less or equal to right | 
| > | left is greater than right | 
| >= | left is greater than or equal to right | 
| \=~ | left matches regular expression [?(@.name =~ /foo.*?/i)] | 
| in | left exists in right [?(@.size in [‘S’, ‘M’])] | 
| nin | left does not exists in right | 
| subsetof | left is a subset of right [?(@.sizes subsetof [‘S’, ‘M’, ‘L’])] | 
| anyof | left has an intersection with right [?(@.sizes anyof [‘M’, ‘L’])] | 
| noneof | left has no intersection with right [?(@.sizes noneof [‘M’, ‘L’])] | 
| size | size of left (array or string) should match right | 
| empty | left (array or string) should be empty | 
Path Examples
| JsonPath | Result | 
|---|---|
| $.store.book[*].author | The authors of all books | 
| $..author | All authors | 
| $.store.* | All things, both books and bicycles | 
| $.store..price | The price of everything | 
| $..book[2] | The third book | 
| $..book[-2] | The second to last book | 
| $..book[0,1] | The first two books | 
| $..book[:2] | All books from index 0 (inclusive) until index 2 (exclusive) | 
| $..book[1:2] | All books from index 1 (inclusive) until index 2 (exclusive) | 
| $..book[-2:] | Last two books | 
| $..book[2:] | All books from index 2 (inclusive) to last | 
| $..book[?(@.isbn)] | All books with an ISBN number | 
| $.store.book[?(@.price < 10)] | All books in store cheaper than 10 | 
| $..book[?(@.price <= $['expensive'])] | All books in store that are not “expensive” | 
| $..book[?(@.author =~ /.*REES/i)] | All books matching regex (ignore case) | 
| $..* | Give me every thing | 
| $..book.length() | The number of books |