Skip to main content

JSONPath Tester

Write a JSONPath and see the matching values instantly, instead of scrolling a huge payload.

JSON data

For example $.store.book[?(@.price < 300)].title

Examples:
Matching values
Add JSON and a JSONPath to see results

Evaluated entirely in your browser — nothing is sent to a server.

About this tool

The JSONPath tester pulls exactly the values you want out of a large JSON document, instead of making you scroll through it or expand a tree one level at a time.

The situation it is built for is inspecting an API response that runs to thousands of lines when you care about three fields. A short expression like $.data.items[*].id answers immediately, and doubles as a place to draft the expression before pasting it into code or another tool that speaks JSONPath.

The capability that earns JSONPath its keep is filtering: $.book[?(@.price < 300)] returns only the entries under 300, and $..price sweeps up every price no matter how deeply nested it is.

The tool also shows the concrete path of every match, so you can see which part of the structure a value came from — which is exactly what you need when the result isn't what you expected. Everything runs in your browser; nothing is uploaded.

How to use

  1. 1Paste the JSON you want to search into the first box
  2. 2Type a JSONPath below, for example $.store.book[*].title
  3. 3Matching values appear instantly, along with how many were found
  4. 4Open "Show the path of each match" to see where each value sits in the structure

Frequently asked questions

What is JSONPath?
JSONPath is a short expression language for pointing at data inside JSON, much like XPath does for XML. $.users[0].name means the first user's name. It lets you extract exactly what you want without writing any code.
Can I filter by a condition?
Yes, with [?(@.field > value)]. For example $.book[?(@.price < 300)].title returns the titles of every book under 300. This is the capability that makes JSONPath worth more than clicking through a tree view.
What is the difference between . and ..?
A single dot goes down exactly one level. Two dots (..) search recursively at any depth, so $..price collects every price in the document however deeply it is nested.
Why do I get no results when the data is clearly there?
The usual causes are a missing leading $ or a key spelled with different capitalisation — matching is case-sensitive. Start with $..* to see everything, then narrow down.
Is my data sent anywhere?
No. Everything is evaluated in your browser, so you can safely paste a real response from an internal system.

Related tools

JSON Formatter

Format, validate and minify JSON — for developers.

JSON to Table

Read JSON as a sortable table and export it as CSV.

JSON ↔ YAML Converter

Convert between JSON and YAML in one click.

JSON Diff

Compare two JSON documents and see exactly what was added or removed