Paste any JSON document, type a JSONPath query, and instantly see every matched value alongside its normalized path. Supports wildcards, array slices, recursive descent, and filter predicates — all evaluated in your browser, nothing leaves the page.
JSONPath is the JSON analogue of XPath. Every query begins at the root symbol $ and describes a walk down through objects and arrays. This tester implements a two-stage pipeline. First a tokenizer scans the expression left-to-right and splits it into ordered segments: dot-child (.key), bracket-child (['key']), array index ([2]), Python-style slice ([start:end:step]), wildcard ([*] or .*), recursive descent (..), and filter predicates such as [?(@.price<10)].
Second, an evaluator maintains a working set of (path, value) pairs, starting with just the root. For each segment it maps the current set to a new set by applying that segment to every node. A child segment keeps only nodes that own the named key; a wildcard expands an object or array into all of its members; a slice resolves negative indices and the step against the array length; recursive descent flattens the entire subtree so the following segment can match at any depth. Filter predicates evaluate a small comparison expression — @ refers to the current element — and keep only the array items for which it is truthy.
Because the set is threaded segment by segment, the algorithm runs in roughly O(N × S) time, where N is the number of nodes visited and S is the segment count. Each surviving node carries its normalized path — the canonical $['store']['book'][0]['author'] form — so you always know exactly where a value came from, not just what it is. Malformed JSON and invalid query syntax are reported live rather than throwing, so you can fix an expression character by character and watch the result set converge.