JSON
JSONPath Tester
Test JSONPath expressions against real JSON data — instantly see the matched values and their paths.
$ — root · .key / ['key'] — property · .. — recursive descent · [*] — all elements · [0,1] — indices · [0:2] — slice · [?(@.price<10)] — filter
—
JSONPath lets you reach into nested JSON values the way XPath does for XML — a compact path string like $.users[0].email instead of manually walking the structure. This tool lets you test an expression against real data and see the result instantly.
How to use it
- Paste JSON data into one field and a JSONPath expression into the other.
- The result shows every matched value along with its exact path, even when there are several matches.
- Use [*] to iterate over every array element, or a filter like [?(@.price > 100)] for conditional selection.
Common uses
- Working out the right JSONPath expression to pull a specific field from an API response before pasting it into code.
- Testing data-transformation or message-routing rules that rely on JSONPath (for example, in AWS Step Functions or an API Gateway).
- Quickly locating a value in a large, deeply nested JSON document without scrolling through it manually.
Things to keep in mind
There's no single official JSONPath standard — the basic syntax (dots, brackets, *) is supported the same way everywhere, but filters and more advanced expressions differ between libraries.
Array indexing in JSONPath starts at zero, like in most programming languages — [0] means the first element.
Article about this tool: JSONPath: querying JSON data without manual parsing
Frequently asked questions
What is JSONPath?
A query language for pulling values out of JSON by path — conceptually the same idea as XPath for XML, just with different syntax. $ is the document root, .key accesses a property, and [*] matches every element in an array or object.
What is the difference between .. and a plain .key?
.key only looks for a property at the current nesting level, while .. (recursive descent) searches for it at any depth in the document. For example, $..price matches every price field no matter how deeply nested it is.
Is my JSON data uploaded to a server?
No, all JSON parsing and JSONPath evaluation happens locally in your browser via JavaScript. Nothing is sent anywhere.
How do I reference a key that contains a dot or a space?
Use bracket notation with quotes: $['user.name'] instead of $.user.name — otherwise the parser reads the dot as a nesting separator rather than part of the key name.
Is there a single official JSONPath standard?
No. The basic syntax (dots, brackets, the wildcard) is supported almost everywhere the same way, but filters and extended expressions differ between libraries — check compatibility for more complex expressions.