>_devtools

JSONPath Tester

Test JSONPath expressions against your JSON and see every match with its path and JSON Pointer.

What this does

Paste JSON, type a JSONPath expression, and see every match as you type. Each result shows the value together with its normalized path (for example $['store']['book'][0]['title']) and its RFC 6901 JSON Pointer, so you can move from a query to the exact location of a value in the document.

Supported syntax

The tester uses JSONPath-Plus, which follows Stefan Goessner's original JSONPath and adds a few extensions such as parent selection and type selectors.

  • $ — The root of the document
  • .name or ['name'] — A child property
  • [0], [-1] — An array element by index; negative counts from the end
  • [*] or .* — Every child of an object or array
  • ..name — Recursive descent: the property at any depth
  • [0:2], [1:], [::2] — Array slices (start:end:step)
  • [0,2], ['a','b'] — A union of indexes or names
  • [?(@.price < 10)] — A filter: keep children for which the expression is true
  • @ — The current node inside a filter

Example

Given this document:

{ "store": { "book": [
  { "title": "Sayings of the Century", "price": 8.95 },
  { "title": "Sword of Honour", "price": 12.99 } ] } }

$.store.book[?(@.price < 10)].title returnsSayings of the Century, and $..price returns both prices.

Behavior notes

  • Filter expressions are evaluated by a built-in safe evaluator. Arbitrary JavaScript, function calls, andeval are not available, so a pasted expression cannot run code.
  • JSONPath has no single standard across libraries, so results for edge cases can differ from other tools.
  • Input is limited to 5 MB and the list shows the first 1,000 matches; the heading still shows the total.
  • A valid expression that selects nothing is reported as zero matches, not as an error.

Privacy

The JSON and the expression are evaluated in your browser. Nothing is uploaded or stored.