JSONPath Query Playground

Paste JSON, run JSONPath expressions, see matched values and their paths live.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

A JSONPath query playground for exploring and extracting data from any JSON document. Paste a configuration file, an API response, or a large nested object, write a JSONPath expression, and watch the matched values — and their exact paths — update live as you type. It is built for developers debugging API payloads, data analysts pulling fields out of bulk exports, and anyone who needs to slice a specific value out of deeply nested JSON without writing a script.

Unlike a basic path tester that only walks simple dot-and-bracket paths, this playground runs the complete JSONPath grammar through the jsonpath-plus engine: recursive descent, wildcards, array slices, index and name unions, the property-name operator, and full filter scripts that can compare each node against literals or against other values in the same document. Every match is reported with its canonical normalized path so you always know where a value came from, not just what it is.

How it works

Your JSON is parsed in the browser the moment you stop typing; a clear validity indicator and inline error message tell you immediately if the document is malformed, and one click reformats or minifies it. Your expression is then evaluated against the parsed tree using resultType: "all", which returns both the matched value and its location. The tool converts each location into a readable path such as $.store.book[0].title, renders scalars inline and objects or arrays as pretty-printed JSON, and shows a running match count in the results header.

Because nothing leaves your machine, you can safely query secrets, tokens, or production payloads. Saved queries, your last fifteen runs, and the current document all persist in local storage, so your workspace survives a page reload. When you have the data you want, export it as a JSON array, a CSV (object matches become columns, scalar matches become a path-and-value table), or a plain list of matched paths.

Example

Start with the built-in bookstore document and run $.store.book[?(@.price < 15)]. The filter is evaluated once per array element, where @ is the current book, so it returns only the two titles priced under 15 — each shown with its path, $.store.book[0] and $.store.book[1]. Switch to $..price and recursive descent collects every price anywhere in the tree, including the bicycle’s. Use $.store.book[0:2].title to slice the first two books and project just their titles, or $.store.book[?(@.price < $.expensive)] to filter against a threshold stored elsewhere in the same JSON. Each result row is exportable, so a query like $..author becomes a one-click CSV of every author in the file.

Every figure and path is computed locally in your browser — no JSON is uploaded or stored on any server.

Ad placeholder (rectangle)