#json-path #json #json-query #query #extension #api-bindings

jsonpath-plus

A JSONPath implementation in Rust, compliant with the Proposal A specification as well as including several extensions such as parent and subpath selectors

10 releases

0.1.9 Feb 17, 2022
0.1.8 Feb 12, 2022

#2422 in Parser implementations

Download history 552/week @ 2024-03-25 497/week @ 2024-04-01 421/week @ 2024-04-08 518/week @ 2024-04-15 381/week @ 2024-04-22 664/week @ 2024-04-29 374/week @ 2024-05-06 587/week @ 2024-05-13 447/week @ 2024-05-20 383/week @ 2024-05-27 345/week @ 2024-06-03 446/week @ 2024-06-10 881/week @ 2024-06-17 497/week @ 2024-06-24 408/week @ 2024-07-01 534/week @ 2024-07-08

2,339 downloads per month
Used in 8 crates (3 directly)

MIT/Apache

96KB
2.5K SLoC

Rust JSONPath Plus

crates.io Documentation MIT/Apache-2 licensed

An implementation of the JSONPath A spec in Rust, with several extensions added on.

This library also supports retrieving AST analysis of compiled paths, so users may implement syntax highlighting or nice error reporting on top of it.

Extensions

  • Parent selector ^, used as $.a.b.^ or $['a']['b'][^]. Matches the parent of the currently selected object.
  • Subpath selectors, used as $['a'][$.b.id] or $['a'][@.sum.id]. Evaluates the subpath, then selects items with keys same as the result of the subpath.
  • ID selector ~, used at the end of the path as @.a.b~ or $['a']['b']~. Can be used in filters to compare against the ID of a matched item. Doesn't yet work at the top level.

Dependencies

~0.9–1.3MB
~27K SLoC