JSONPath Extractor
Extract JSON values by child property, array index or wildcard. Export each match with its normalized path and original numeric spelling.
This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.
Select JSON values with named child, array index or wildcard selectors and export every match with its normalized path.
How to use it
- 1Paste JSON or open a local UTF-8 JSON file.
- 2Enter a supported JSONPath query and select Extract matches.
- 3Review the paths and values, then copy or download JSON.
Example
- Input
- {"orders":[{"id":9007199254740993},{"id":24},{"status":"open"}]} Query $.orders[*].id
- Output
- [{"path":"$['orders'][0]['id']","value":9007199254740993},{"path":"$['orders'][1]['id']","value":24}]
The order without an ID produces no match. The long numeric token retains all its digits in the downloaded JSON.
What happens to your data
The JSON document, query, matched paths and values stay in your browser unless you copy or save the result.
Last updated November 2026
Pull selected values from a JSON document and see exactly where each match came from. Paste a payload or open a local UTF-8 JSON file. Enter a JSONPath query such as $.orders[*].id to collect ID values from an array. Copy or download a JSON list containing each value and its normalized path.
How it works
Start a query with $. The root alone selects the entire document. A dot followed by a property name, such as .orders, selects that object member. Quoted bracket syntax such as ['order.id'] selects names containing punctuation or spaces. Use [0] for the first array item and [-1] for the last. A wildcard [*] or .* selects immediate children. Missing properties and out-of-range indices add no match. A valid query with no matches produces an empty JSON array.
The supported syntax is a subset of the JSONPath selectors in RFC 9535. Each segment has one child selector. This tool does not accept filters, functions, lists of selectors, slices or recursive descent. A normalized match path uses bracketed property names and nonnegative array indices. Array children follow source order. Object wildcards follow the order in the input document, which is a display choice because JSON objects have no standard member order.
The extractor keeps the original spelling of each matched JSON value, including integer digits, decimal exponents and string escapes. A downstream application can still round numbers when it parses the export. To avoid ambiguous lookups, the extractor rejects duplicate property names, including different spellings that decode to the same name. Input is limited to 1 MiB, 50,000 values and 64 levels of nesting. Queries allow 32 segments, up to 10,000 intermediate matches and 1,000 final matches. Large results or overlong paths produce an error instead of an incomplete export.
Worked example: Extract IDs from an array of orders
- Input
- {"orders":[{"id":9007199254740993},{"id":24},{"status":"open"}]} Query $.orders[*].id
- Result
- [{"path":"$['orders'][0]['id']","value":9007199254740993},{"path":"$['orders'][1]['id']","value":24}]
The order without an ID produces no match. The long numeric token retains all its digits in the downloaded JSON.
Common use cases
- Collect one field from every entry in a JSON API response.
- Find an exact match path for a value with a long identifier.
- Select the last entry of a nested array without rewriting the document.
- Inspect an object with dotted or space-containing property names.
Frequently asked questions
How is JSONPath different from JSON Pointer?+
A JSON Pointer identifies one location. A supported JSONPath wildcard can select multiple immediate children and produce several matches in one query.
How do I query a key containing a dot?+
Use quoted brackets. For a single property literally named order.id, enter $['order.id']. The expression $.order.id instead selects a child named id inside order.
Can I filter rows with ?(...) or use $..id?+
This extractor supports direct names, indices and wildcards. Filter expressions, functions and recursive descent need a fuller JSONPath implementation.
Will the result include missing values as null?+
Missing properties or indices produce no entry. An explicit JSON null is an actual value and is included with its path.
What happens to an integer longer than JavaScript can represent?+
The export copies its original JSON token without converting it to a floating-point number. Check numeric precision when importing it into another application.
Related tools
JSON Formatter & Validator
Format, validate, and minify JSON with exact line errors, a searchable tree, and private processing.
JSON Array Splitter
Split a JSON array into fixed-size batches, preserving value spelling and source order. Download all JSON files and a manifest in one ZIP.
JSON Schema Generator
Generate a draft 2020-12 schema from JSON examples and check their observed types locally.
SemVer Sorter
Sort semantic versions by SemVer 2.0 precedence and keep original build labels, duplicates and tied order.