Free browser tool

JSONPath tester

Run common JSONPath expressions against JSON and inspect matched values.

Input and settings

How to use it

Apply a JSONPath expression to JSON and inspect the matched values together with their concrete paths. This tester intentionally supports a useful subset rather than every JSONPath dialect.

  1. Enter a JSONPath expression and valid JSON.
  2. Run the test and check the match count.
  3. Inspect each returned path and value to confirm the expression selects only what you intended.
Supported
$, .key, [index], [*], ['key'], ..key
Not supported
Filter expressions, slices, unions and other extensions
Result
Array of matched paths and values
JSON input
Must parse as standard JSON

$.store.book[*].title selects every book title

With {"store":{"book":[{"title":"A"},{"title":"B"}]}}, the expression $.store.book[*].title returns two matches: A and B.

JSONPath behavior varies across libraries and products. An expression that works in this subset tester is not a guarantee that another implementation supports exactly the same syntax or semantics.

$ represents the root

Expressions start at $. A path such as $.store.book walks named properties from the root object.

[*] expands array or object members

Use it when the next path step should be applied to every member rather than one specific index or property.

..key recursively searches descendants

Recursive selection can match the same key name in many nested areas. Review the returned concrete paths when the document is large.

Filter expressions are not available

Expressions such as $..book[?(@.price<10)] are outside this tool’s current subset. Use a fuller JSONPath implementation when predicates are required.

Zero matches can be a valid result

A syntactically supported expression can simply point to data that does not exist. Distinguish “no matches” from a parser error when debugging.