JSONPath Tester
Free JSONPath tester. Query pasted JSON with a JSONPath expression and see every matching value.
Why "the full spec" isn't really one thing
Unlike XPath for XML, JSONPath was never standardized by a single authoritative body until relatively recently (RFC 9535, 2024) — for most of its existence, it was defined informally by Stefan Goessner's original implementation, and different JSONPath libraries across different languages disagree on edge cases, especially around filter expressions (`[?(@.price < 10)]`) and slice syntax (`[1:3]`). This tool implements the common core that essentially every implementation agrees on — root/property/index/wildcard/recursive-descent access — and deliberately leaves out the parts that are contested between implementations, so what it does support behaves consistently rather than matching one specific library's particular interpretation of the more exotic syntax.
Why recursive descent (..key) is the most powerful single feature
Most JSONPath access requires knowing the exact shape of the document — `.store.book[0].title` only works if you know there's a `store`, containing a `book` array, at that specific depth. Recursive descent breaks that requirement: `$..title` finds every `title` key anywhere in the document, at any depth, regardless of how deeply nested it is or what's around it. That makes it the tool of choice for exploring an unfamiliar or deeply nested JSON document — pulling out every instance of a field you know the name of without first having to map out the document's full structure by hand.