Back to Developer
JSON Path query — query JSON trees with JSONPath

JSON Path query — query JSON trees with JSONPath

Run JSONPath queries (e.g. `$.store.book[*].author`) against JSON data and pull out exactly what you need. Powered by jsonpath-plus (MIT) inside the browser. Pick what to return — values, paths, or parent nodes. Great for slicing API responses, fishing specific fields out of logs, sanity-checking config files, or exploring JSON in DevTools. Filter expressions like `?(@.price < 10)`, recursive `$..`, and tag matches `[?(@.tag=='x')]` are all supported. Everything is evaluated locally — no upload.

developerJSONextract

How to use

Paste JSON, then write a JSONPath query (e.g. `$.store.book[*].author`). Pick a 'Result type'. Value returns matching node contents, path returns the JSONPath string, parent returns the object/array that owns the match. Results refresh as you type. The match count and JSON output are shown below; copy or download as needed. Click Sample to load a familiar books / bicycle dataset with the query `$.store.book[*].author`.

FAQ

Which queries are supported?
Everything jsonpath-plus implements: `$` (root), `..` (recursive descent), `[*]` (all members), `[?(@.price < 10)]` (filters), `[0:5]` (slices), etc. See the jsonpath-plus README for the full grammar.
What's the difference between value / path / parent?
Value (default) returns the matching node's contents. Path returns its JSONPath string (like `$.store.book[0].author`). Parent returns the object/array that directly contains the match.
What does 'Flatten single match' do?
JSONPath always assumes multi-match, so the default wraps even a single result in a `[...]` array. With Flatten ON, single matches are returned as their raw value (e.g. `$.expensive` yields `10` directly). Multi-match results stay arrays either way.
Why does my JSON fail to parse?
JSON5 (comments, trailing commas, single quotes, etc.) is not accepted. Convert it to standard JSON with the json5-format tool first.
Is anything uploaded?
No. jsonpath-plus runs entirely in your browser — your JSON never leaves the device.

Related tools