Skip to content
100% local

JSONPath extractor

Pull matching values out of a JSON document with a JSONPath or JSON Pointer expression.

Input
Output

JSONPath extractor

Paste a JSON document, write a query, and this tool returns just the values that match — no need to write a script or open a REPL to pull one field out of a big payload. It supports two query styles: JSONPath expressions like $.users[*].email, and RFC 6901 JSON Pointer references like /users/0/email. Switch between them with the syntax option depending on which one you already have on hand, from an API doc, a log line or a bug report.

JSONPath support covers the patterns people actually reach for: dot and bracket property access ($.user.name or $['user name'] for keys with spaces), the [*] wildcard to fan out across every element of an array or every value of an object, numeric indices including negative ones counting from the end ($.items[-1]), and .. recursive descent to find a key at any depth regardless of how deeply it is nested ($..email). Filter expressions and slice ranges are not supported — if your query needs conditional logic, extract the parent array first and filter it downstream.

Two options shape the output. "List of lines" prints each matched value on its own line — strings are printed plain, objects and arrays are printed as compact JSON — which is convenient for feeding straight into another line-based tool like sort or dedupe. "JSON array" wraps every match into a single JSON array instead, useful when you want a clean, parseable subset of the original document. Turn on "Show path for each match" to prepend the resolved path to every result, which helps when several different fields could plausibly explain a given value.

Everything runs locally in your browser: the document you paste, and the expression you write against it, are never uploaded anywhere. That makes it safe to point at real API responses, internal config exports or production log excerpts. The tally under the output reports exactly how many matches were found, so an unexpectedly empty result is easy to tell apart from a query that quietly returned nothing.

FAQ

What is the difference between JSONPath and JSON Pointer here?
JSONPath expressions like $.users[*].email can match many values at once using wildcards and recursive descent. JSON Pointer references like /users/0/email always resolve to at most one value — it is a simpler, more literal addressing scheme, common in JSON Schema and HTTP PATCH payloads.
Which JSONPath features are supported?
Dot and bracket property access, the [*] wildcard, numeric array indices (including negative ones), and .. recursive descent for a key at any depth. Filter expressions such as [?(@.price<10)] and slice ranges such as [0:2] are not supported.
What happens if my expression matches nothing?
You get an empty result and a tally of 0 matches — that is not treated as an error. An error is only shown for invalid JSON input or a malformed expression.
Can I see where each value came from?
Turn on "Show path for each match" and every result is prefixed with the exact path it was found at, in the same syntax as the query — JSONPath paths like $.users[0].email, or the original pointer for JSON Pointer queries.
Is my JSON document uploaded anywhere?
No. Parsing and querying both happen entirely in your browser — the document and the expression never leave your device.