JSONPath Tester
Paste a JSON document and a JSONPath expression. The tool evaluates the path against the document and shows every matching value as a JSON array. Supports the common subset: `$` root, `.key` dot navigation, `[n]` index (positive and negative), `[*]` wildcard, `..` recursive descent, and `['key']` bracket-quoted keys. Useful for sanity-checking a JSONPath before pasting it into jq, Bruno, Postman, k6, or a CloudWatch query.
Matches (3 matches)
[ "Evelyn Waugh", "Herman Melville", "Nigel Rees" ]
Supports `$`, `.key`, `..key`, `[n]`, `[-1]`, `[*]`, and `['key']`. Filters and slices aren't supported — use jq for those.
How to use
- Paste your JSON in the top box (the default sample works as a starting point).
- Write a JSONPath expression — click an example chip if you're not sure.
- Read off the matched values, or copy them as a JSON array.
Frequently asked questions
- What JSONPath dialect is this?
- A practical subset of the Goessner / RFC 9535 syntax — root `$`, child `.key`, recursive `..`, index `[n]`, wildcard `*`, and quoted keys `['x']`. Filter expressions (`[?(@.price < 10)]`), slices (`[0:2]`), unions (`[0,2]`), and script expressions are not supported. Use jq for those.
- Why does my path return nothing?
- Common causes: typos in key names (JSONPath is case-sensitive), the field is missing on some items (recursive `..` skips silently rather than erroring), or the input isn't valid JSON. Try a simpler path first to confirm the data is what you expect.
- Does `$..price` find prices at every depth?
- Yes — `..` is recursive descent and `price` then filters to nodes that have a `price` key. It returns the values, not the objects containing them. To get the containers, use `$..*` and filter mentally.
- Can I run this against a large API response?
- Yes locally — parsing and walking is fast for documents up to a few MB. For real APIs you'd typically use jq on the command line or Bruno/Postman's built-in JSONPath; this tester is for iterating on the expression itself before you commit it.
Related tools
JSON Pointer Resolver (RFC 6901)
Resolve an RFC 6901 JSON Pointer like /user/roles/0 against a JSON document, with ~0/~1 escaping and URI-fragment (#/…) support — plus a clickable list of every pointer in the document, in your browser.
Query String to JSON Converter
Convert a URL query string to a JSON object and back, in your browser.
URL Parser
Break a URL into protocol, host, port, path, query, and hash. Decode query parameters into a table.
JSON Formatter & Validator
Format, beautify, minify, and validate JSON right in your browser.
MessagePack Decoder
Paste base64 or hex MessagePack bytes and read the values — types, nested maps, binary blobs and timestamps — decoded in your browser.
JWT Decoder
Decode a JSON Web Token to inspect its header, claims, and expiration.