Examples: $..price, $.store.books[0], $.store.books[?(@.price < 20)].title, $.store.books[-1:]
Evaluate an expression to see matching values.
Evaluate JSONPath expressions against JSON online, free. JSONPath is a query language for JSON — the JSON analogue of XPath for XML — that selects values by path, with wildcards, recursive descent and filters. This tester parses your JSON and evaluates a JSONPath expression against it in your browser, listing every matching value as JSON so you can confirm a path before wiring it into code, a config, or an API mapping.
Both the JSON and the expression are evaluated entirely in your browser — nothing is uploaded — and the tool supports wildcards (*), recursive descent (..), array slices, unions and filter expressions like [?(@.price < 20)]. 100% free, no registration, and complete privacy — everything runs locally in your browser, so your data never touches a server.
Paste JSON, type a JSONPath expression and instantly see every matched value rendered as clean JSON.
Use $..price to find a key at any depth, or books[*] to select every element — the full navigation toolkit.
Narrow results with filters such as [?(@.category=='tech')] and array slices like [-2:] for the last two items.
Your JSON never leaves the page — parsing and evaluation run locally, so it is safe for real API payloads.
JSONPath is a query language for JSON — standardised as RFC 9535 — that you use to select parts of a document by path. The root is $, dots and brackets walk into children (e.g. $.store.books[0].title), and special operators add wildcards, recursive search and filtering. It is the JSON counterpart to XPath for XML.
It supports the root $, child access (.name or ['name']), the wildcard *, recursive descent .., array indexing including negatives ([-1]), slices ([start:end:step]), unions ([0,2]) and filter expressions with comparisons such as [?(@.price < 20)] and existence checks like [?(@.discount)].
Yes — it evaluates JSONPath for free with no signup and, unlike many hosted testers, runs entirely in your browser so your JSON is never uploaded. It covers the common operators (wildcards, recursion, slices, unions and filters) you need to validate a path.
Usually the path doesn't match the structure: check that you used [*] to step into arrays, $.. for keys nested at unknown depth, and the exact key names (JSONPath is case-sensitive). A filter that compares a string to a number, or a missing quote around a key, will also return nothing.
$.a.b selects b only when it sits directly under a at that exact location. $..b is recursive descent — it finds every b key anywhere in the document, at any depth. Use the recursive form when you don't know (or don't care about) the full path to a key.
No. The JSON is parsed and the expression evaluated entirely in your browser; nothing is transmitted or stored, so you can safely test paths against production payloads.
We use cookies for analytics and personalized ads to help keep these tools free. Until you accept, ads stay non-personalized and analytics cookies are off. See our Privacy Policy.