Developer Tools

JSONPath Tester

Query JSON locally using RFC 9535 JSONPath. Test filters, wildcards and slices, inspect matched values and normalized paths, then copy or download results without executing JavaScript.

Your content stays on your device Free, with no account
Find the values inside your JSON RFC 9535 · local worker
Up to 100,000 UTF-16 units, 20,000 values and 64 nested containers. Duplicate keys are rejected.
Start with $. Up to 2,000 units. RFC 9535 query syntax, not JavaScript.
YOUR MATCHES

Ready. Paste JSON and enter a query.

Results are always arrays; zero matches is []. Repeated selections are retained. Numbers use binary64 and decimal spelling may change; unsafe integers, non-finite values and nonzero underflow are rejected. Results can contain private source data—review before sharing.

Query quick reference

$ root · $.name child · $['a.b'] literal key · $[*] children · $..price descendants · $[0,-1] selected indexes · $[1:5:2] slice · $.books[[email protected] < 10] filter.

Standard functions include length(), count(), value(), match() and search(). Legacy script expressions, custom functions and JavaScript method calls are not supported. Regex functions use the library’s I-Regexp interpretation. A 5-second limit includes startup; results are capped at 1,000 matches and 250,000 UTF-16 output units. Limit errors provide no partial export.

JSONPath RFC 9535 reference ↗
A FEW SIMPLE STEPS

How to use JSONPath Tester

  1. Paste JSON and a JSONPath query beginning with $, or load the example.
  2. Choose matched values, normalized paths, or paths and values.
  3. Select Run JSONPath to inspect a JSON array of matches. No matches is a valid empty array. Cancel or edit to stop pending work.
  4. Copy or download the result. Result arrays may include private source data; review before sharing.
PRIVATE BY DESIGN

Why use this tool?

Queries run on your device in a disposable worker with a self-hosted RFC 9535 parser. Query text is interpreted as JSONPath, never JavaScript. No uploads, external APIs, accounts or saved query history are involved.

Tool inputs stay in your browser. Only your theme preference is saved on this device.

A few things worth knowing

Which JSONPath syntax is supported?

The tool uses self-hosted jsonpath-rfc9535 1.3.0 (Apache-2.0), targeting the standardized RFC 9535 dialect. It supports child and descendant segments, quoted names, wildcards, index lists, slices, filters and standard length/count/value/match/search functions. It does not implement legacy JavaScript script expressions, arbitrary method calls or custom functions. Behavior can differ from older JSONPath tools.

Are filters executed as JavaScript?

No. Filters are parsed and interpreted by the JSONPath engine; there is no eval, Function constructor or query-generated JavaScript. Match/search functions use the library’s I-Regexp interpretation with Unicode behavior. Expensive queries or patterns can still take time, so work runs in a cancelable worker with a five-second deadline.

What are the output formats?

Values produces a JSON array of selected values. Paths produces normalized JSONPath strings such as $['books'][0]['title']. Paths and values produces objects with path and value members. Results are always arrays, even for one or zero matches. Duplicate selections are retained. Object-member traversal order follows the engine and does not promise original JSON text order.

How are JSON numbers and property names handled?

Numbers are parsed with JavaScript binary64 semantics, so ordinary decimal precision and number spelling can change. Unsafe integers, non-finite values and nonzero underflow to zero are rejected. Quote large identifiers to retain their text. Duplicate keys and unpaired surrogate strings/keys are rejected. Objects have no inherited properties internally, so prototype-like keys remain own data.

What limits apply?

Input accepts 100,000 UTF-16 units, 20,000 values and 64 nested containers. Queries accept up to 2,000 units. Results are limited to 1,000 matches and 250,000 output units. Exceeding a limit fails rather than exporting a partial list. The five-second deadline includes module startup, parsing and execution; cancel, edits and page exit terminate the worker and discard late replies.

Does this modify, upload or store my JSON?

No. The tool only queries the parsed document. Inputs remain unchanged, results are rendered as text, and no API or storage is used. Exports contain selected values or paths rather than a wrapper report, so they can contain sensitive source data. Copy/download are optional.