How to use JSON Path Tester
- Paste the JSON document.
- Type a JSONPath expression such as $.store.book[?(@.price < 10)].title.
- Inspect the matches; copy the values or the normalized paths.
JSON Path Tester features
- Full JSONPath syntax: dot/bracket access, wildcards, recursive descent, slices and unions
- Filter expressions with comparisons, regex (=~), in / nin, arithmetic and boolean logic
- Safe evaluation — no eval(), expressions are parsed into an AST
- Results as a table (path, type, value), a JSON array of values and a list of normalized paths
- Evaluates live as you edit the expression or the document
- Friendly syntax errors that point at the problem
JSON Path Tester example
Find cheap books
Input:
$.store.book[?(@.price < 10)].titleOutput:
$.store.book[0].title "Sayings of the Century"
$.store.book[2].title "Moby Dick"Frequently asked questions about JSON Path Tester
Which JSONPath features are supported?
Dot and bracket notation, wildcards (*), recursive descent (..), array indexes including negatives, slices [start:end:step], unions [0,2] and ["a","b"], filters [?(…)] and the (@.length-1) script form.
What can I write inside a filter?
Comparisons (==, !=, <, <=, >, >=), regular expressions (@.name =~ /^a/i), membership (@.tag in ["a","b"]), existence (@.isbn), arithmetic and logical operators (&&, ||, !). References to the root ($) are allowed too.
Is it safe to evaluate filters?
Yes. Expressions are parsed into a small AST and evaluated by the tool itself — no eval() or Function() is ever used, so nothing can execute arbitrary code.
What is a "normalized path"?
The unique bracket/dot path of each match, for example $.store.book[2].title. Use it to reference the value precisely in tests or documentation.
Technical notes
The path is tokenised into segments (child, wildcard, index, slice, union, filter, script). Filters are compiled to a small expression tree supporting ==, !=, <, <=, >, >=, =~, in, nin, contains, &&, ||, !, unary minus and + − * / %. Comparisons between mismatched types evaluate to false, mirroring the behaviour of popular JSONPath libraries.