JSONPath query
Query JSON with a JSONPath expression: dot/bracket access, wildcards (*), recursive descent (..). No filter expressions (?()) or slices; those need a full JSONPath engine this build does not have.
Runs on your device. The file is never uploaded.
JSONPath query runs an expression over a JSON file and prints the matches as a pretty-printed array, even when only one thing matched. The path box starts at $.tags[*]. Dot and bracket access, wildcards and recursive descent all work, but filters, script expressions and slices are refused by name rather than quietly matching nothing.
Questions
Which JSONPath syntax is supported?
A deliberate subset: $.key and $['key'] for named access, $[0] for an array index, $.* and $[*] for a wildcard, and $..key for recursive descent through every level. The default expression on the page is $.tags[*]. Anything beyond that is refused rather than quietly matching nothing.
Why are my filter expressions rejected?
Because this build has no full JSONPath engine, and it says so instead of returning an empty result. A path containing a filter such as [?(@.age>30)] stops with a message that "filter expressions" are "not supported by this JSONPath subset". Script expressions in parentheses are refused the same way.
Can I use a slice like $[0:5]?
No. Slice notation is detected and refused with a message naming it, on the same principle as filters: an unsupported construct that silently matched nothing would look exactly like data that does not contain what you asked for. Use $[0], $[1] and so on, or a wildcard, and filter the results yourself.
What does the output look like?
Always a JSON array of matches, pretty-printed with 2 spaces, even when there is exactly one match. If nothing matched you get an empty array. Recursive descent can return the same value more than once if it is reachable by several paths.
Why does it say my path is bad?
A few checks run before the query. The expression has to start with $, or you get "path must start with $". An opening bracket with no closing one gives "unterminated [ in path". Anything else unexpected gives a message naming the character. Data nested more than 300 levels deep is refused too, rather than risking a stack overflow.
Does my document leave the browser?
No. The file is parsed and queried in a Web Worker in this tab, so you can point it at production data without any of it going anywhere. Nothing is uploaded, nothing is logged, and the document is gone when you close the page. The path you typed is not stored either.