Paste your JSON into the input pane, enter a path expression in the field at the top (e.g. $.users[0].name), and click Extract. The matching value is returned as formatted JSON. Useful for quickly exploring API responses or config structures.
Free, fast, runs in your browser. No login needed.
$.users[0].name.The tool evaluates your path expression as a JavaScript property access. It replaces the leading $ with data (where data is your parsed JSON), then runs the resulting expression via new Function(). $.users[0].name becomes data.users[0].name.
What works: dot notation ($.key), bracket notation ($.users[0]), chained access ($.config.db.host), array properties ($.items.length), and any valid JavaScript property access chain.
What does not work: the tool does not implement the full JSONPath specification. Wildcard selectors ($.users[*]), recursive descent ($..name), and filter expressions ($.users[?(@.active == true)]) are not valid JavaScript and will return a path error. For those operations, use a server-side JSONPath library (jsonpath-plus, jmespath) or the Filter JSON Array tool on this site.
JavaScript expressions. Because paths are evaluated as JavaScript, native array methods work: $.users.filter(u => u.active) returns only active users. This goes beyond JSONPath syntax but can be more expressive for one-off queries.
If the path throws a JavaScript error (property not found on undefined, invalid syntax), the tool returns a Path error: message with the engine's description.
No. The tool evaluates paths as JavaScript property access, not as a JSONPath library. Basic dot and bracket notation works. Wildcards ([*]), recursive descent (..), and filter expressions ([?(@.field)]) are not supported.
[*] is JSONPath wildcard syntax, not valid JavaScript. The tool evaluates the path as JS, so it fails. To extract all names, use $.users.map(u => u.name) instead — JavaScript array methods are supported.
Yes. Expressions like $.users.filter(u => u.active) or $.items.map(x => x.id) work because paths are evaluated as JavaScript. This is more flexible than strict JSONPath syntax for ad-hoc queries.
The path expression threw a JavaScript error — usually accessing a property on undefined (the path goes deeper than your data) or a syntax error in the expression itself.
No. Both the JSON and the path expression are evaluated entirely in your browser. Nothing is transmitted.
JSONPath uses $. prefix and dot/bracket notation borrowed from JavaScript. JMESPath is a separate query language with different syntax for filters and projections, used notably in the AWS CLI. This tool uses JavaScript-style paths only.