JSONPath Online Tester

Write a JSONPath expression, see the matched nodes instantly. Supports recursive descent (..), filters (?(@.price < 10)), array slices ([0:2]), and wildcards ([*]) — all running locally in your browser.

100% Client-Side Instant No uploadYour data never leaves your browser
Examples:

How to use this tool

Paste your JSON into the input on the left.

Type a JSONPath expression in the box below. Matched values appear on the right as you run.

Try the example chips to see common patterns: $..price returns every price anywhere in the document; $.store.book[?(@.price < 10)] filters books cheaper than 10.

JSONPath is widely used in REST API clients (RestAssured, Karate), monitoring tools, and configuration systems to select nodes from JSON without writing a full parser.

For more powerful transformations (mapping, arithmetic, string formatting), use our jq playground.

Frequently asked questions

Which JSONPath dialect is supported?

We use JSONPath Plus, which implements the de facto Goessner JSONPath spec plus common extensions: filter expressions, script expressions, and array slices. This covers virtually every JSONPath example you will find in the wild.

How do filter expressions work?

Use [?(@.field <operator> value)] inside a path. For example, $.users[?(@.age >= 18)] returns adult users. The @ refers to the current node. Supports ==, !=, <, <=, >, >= and =~ (regex).

What does the double-dot (..) mean?

Recursive descent — it searches the entire subtree. $..title finds every title at any depth in the document.

JSONPath vs jq — which should I use?

Use JSONPath for selecting nodes. Use jq when you also need to transform them (map, reduce, format strings, arithmetic). This page covers JSONPath; our jq playground covers jq.

Is the data uploaded?

No. Evaluation runs entirely in your browser.

Related tools