Which JSONPath syntax is supported?
+
The jsonpath-plus dialect, which covers the RFC 9535 core — root $, dot and bracket notation, wildcards *, recursive descent .., array slices [0:2], unions [0,1] and filters [?(…)] — plus some extensions like the parent operator ^. Expressions from the RFC and from Goessner's original article generally work as-is.
What does the path next to each match mean?
+
It is the normalized form of where the value lives, always in bracket notation: $['store']['book'][0]['title']. Every match gets one, so you can copy a path back into the expression box to select exactly that value again.
Can a filter expression run arbitrary JavaScript?
+
No. This tester passes the library's safe-evaluation option, so filters like [?(@.price < 10 && @.category == 'fiction')] are interpreted by a restricted expression evaluator. Attempts to reach things like constructor or window fail with an error instead of executing.
Why do I get zero matches instead of an error?
+
A syntactically valid expression that selects nothing — a key that does not exist, a filter nothing satisfies — legitimately returns an empty result in JSONPath. Only malformed expressions and invalid JSON produce an error message.
What is the difference between $.. and $.*?
+
$.* selects the direct children of the root only. $.. is recursive descent: it visits every value at every depth, so $..price finds price wherever it appears in the document.
Is my JSON uploaded to run the query?
+
No. Parsing and evaluation both happen in this tab; the document and the expression never leave your device.