Extraction Tools Runs in your browser Free · no account

JSON Path Extractor

The JSON path extractor reads a dotted path such as users[0].email or users[*].email and returns the matching values from a JSON document. Wildcards work at any level, so you can pull one field out of every record in an array.

Options
JSON document 0 characters
Extracted values

Your result will appear here.

Not sure where to start? Use Load example.

Results update automatically and are calculated on your device. Nothing you type is sent to a server.

Runs in your browser. Processing happens entirely in your browser. Nothing you enter is sent to Delimiter.live.

How to use the JSON Path Extractor

  1. Paste your JSON document.
  2. Write a path using dots for object keys and square brackets for array indexes.
  3. Use [*] to match every element of an array, at any depth.
  4. Choose how the values should be formatted and copy the result.

Example

Input
Path: users[*].email
Output
ada@example.com
grace@example.com

Common use cases

  • Getting a list of IDs or email addresses out of a large API response.
  • Checking what value sits at a particular path before writing code against it.
  • Turning one field of a nested response into a CSV column.

Limitations and things to watch for

  • The path syntax is a practical subset: object keys with dots, numeric array indexes, and the [*] wildcard for arrays and objects. It is not the full JSONPath specification — filter expressions such as [?(@.age > 30)], recursive descent with .., and slice syntax are not supported.
  • A path that matches nothing returns an empty result rather than an error, which is usually the answer you wanted.
  • Object and array values found at the path are output as JSON, since they cannot be flattened to a single line.

Frequently asked questions

What path syntax is supported?
Dotted object keys, numeric array indexes such as users[0], and the [*] wildcard to match every element. Leading $ is accepted and ignored. Filter expressions and recursive descent are not supported.
How do I get one field from every item in an array?
Use a wildcard: users[*].email returns the email of every user. Wildcards can appear more than once, so users[*].roles[*] returns every role of every user.
What happens if the path does not exist?
You get an empty result and a note saying nothing matched, rather than an error — which is the useful answer when you are exploring an unfamiliar structure.

Share this tool