SYSTEM TIME --:--:-- IST · 152 TOOLS LIVE · RUNS IN YOUR BROWSER — NOTHING UPLOADED
← Back to DATA TOOLS
DATA TOOLS

JSON Query Tool (JSONPath)

Query a JSON file or paste using JSONPath — filters, wildcards, and recursive search — entirely in your browser.

🔒 Nothing you enter on this page is sent anywhere.

This tool runs entirely as JavaScript in your browser. the JSON you paste or load, and the query you run against it, is never transmitted over the network to this site's server or any third party, and is never written to a cookie, to browser storage, or to any log — there is nothing on our end to breach, subpoena, or accidentally leak, because it was never received in the first place. Closing or refreshing this tab clears it completely.

This describes only what this specific tool does with what you type into it. It doesn't cover the rest of this site — see the Privacy Policy for how analytics and advertising cookies are handled elsewhere.

Try $.store.books[*].title for all titles, $.store.books[?(@.price < 500)] to filter, or $..price to find every "price" field anywhere in the document.
Paste or load JSON, then run a query to see matching results here.

About this tool

Paste or load a JSON file and query it with JSONPath — a standard, compact query language for JSON, similar in spirit to how XPath queries XML. A single expression can pull out one field from deep inside a nested structure, every item matching a wildcard, or only the items matching a filter condition — without writing a loop or opening a script editor.

This is aimed at the same kind of situation as the CSV SQL Query Tool, just for JSON instead of tabular data: an API response you need to pull a handful of values out of, a config file you need to search, or a nested export where the field you care about is buried several levels deep and scrolling through it by eye is slow and error-prone.

Common patterns worth knowing: <code>$.a.b.c</code> reaches a specific nested field directly, <code>$.items[*].name</code> pulls one field from every item in an array, <code>$..price</code> (the double dot) searches recursively through the entire document for any field named "price" at any depth, and <code>$.items[?(@.price &lt; 500)]</code> filters an array down to only the items matching a condition.

Nothing here touches a server — the JSON you paste or load, and the query you run against it, are processed entirely in your browser. Refreshing or closing the tab clears everything, and nothing is saved between visits.

Frequently asked questions

What is JSONPath, and is it the same as jq?

JSONPath is a standard, widely-supported query syntax for JSON — similar in purpose to jq (the popular command-line JSON processor) but with its own, more compact syntax rather than jq’s pipe-based filter language. This tool uses JSONPath specifically, not jq syntax.

Does this upload my JSON anywhere?

No — it never leaves your browser. Parsing and querying both happen locally as JavaScript running on your device, with no server this tool talks to at all.

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

It searches recursively through the entire document at any depth, rather than only one specific level — $..price finds every field named "price" anywhere in the JSON, no matter how deeply nested, while $.price would only match a top-level field with that name.

Can I filter results by a condition, like price under a certain amount?

Yes — use a filter expression like $.items[?(@.price &lt; 500)], which keeps only the array items where the condition inside the brackets is true.

How big a JSON file can I load?

It’s best for files under about 20MB — since parsing and querying both happen in your browser’s own memory rather than on a server, a much larger file may run slowly depending on your device.

Does it save my query for next time?

No, by design — nothing persists between visits. Copy your query or result before navigating away if you want to keep it.

More scenarios

Related tools