JSONPath

JSONPath Tester

Paste a JSON document and type a JSONPath expression such as $.store.book[*].title. Every match is listed with its normalized path and formatted value, and the results can be copied or downloaded as a JSON report.

Back

1. JSON & expression

RFC 9535 subset

2. Matches

Count: 0
Paste JSON, enter a JSONPath expression and press Run query.

Filters, scripts and functions are not supported and are never evaluated.

About this tool

About JSONPath Tester

JSONPath Tester runs JSONPath expressions against a JSON document in your browser. It supports the root, dot and bracket members, wildcards, indexes, unions, slices and recursive descent, following RFC 9535 for these selectors, and lists every match with its normalized path and formatted value.

JSONPath is used in API testing, monitoring tools, configuration and data pipelines. Trying an expression on real data shows exactly what it selects before you rely on it.

How to use

Step by step

  1. Paste a JSON document.
  2. Type a JSONPath expression starting with $, or pick an example.
  3. Press Run query.
  4. Review the match count, paths and values.
  5. Copy or download the JSON report.
Key features

What it offers

  • Dot and bracket member access, including quoted names
  • Wildcards, negative indexes and unions
  • Array slices with start, end and step
  • Recursive descent with .. in document order
  • Normalized path for every match
  • Clear rejection of filters, scripts and functions
Best practices

Tips for best results

  • Start broad (for example $..*) and narrow the expression step by step.
  • Use bracket notation for keys containing hyphens or spaces.
  • Copy a match’s normalized path to target exactly that value.
  • Check expressions against sample data with missing or extra fields.
Benefits

Why people use it

Precise

Every match with its exact path.

Safe

No code is ever evaluated.

Standards-based

RFC 9535 selector behaviour.

Private

Data stays in your browser.

FAQ

Common questions

The root $, dot members ($.store.book), bracket members ($['store']), wildcards (.* and [*]), indexes including negative ones ([0], [-1]), unions ([0,2] or ['a','b']), slices ([1:3], [::2], [::-1]) and recursive descent ($..price, $..*). It follows RFC 9535 for these selectors.
No. Filters such as [?(@.price < 10)], script expressions such as [(@.length-1)] and function calls are rejected with a clear message. They are never evaluated, and the tool does not pretend that they ran.
A canonical path to the matched value, such as $['store']['book'][0]['title']. You can paste it back in as an expression to select exactly that value.
Use bracket notation with quotes, for example $['my-key'] or $["first name"]. Dot notation only accepts simple names.
Up to 1,000 matches are listed. If more values match, the report says that the limit was reached. Very large documents (over 2 MB) are refused.
You get the line and column of the first syntax error, with a short explanation such as a trailing comma or a missing quote.
No. The document is parsed and queried in your browser. Nothing is uploaded or stored.
Private by design

This runs entirely in your browser

No file or text you enter here is uploaded. Encoding and decoding happen on your device using native browser APIs — close the tab and nothing remains on a server.

Install Toolisco Add it to your device for offline, one-tap access.