Skip to content
Input
Text
Limit
1 MiB
Runtime
Browser

Test a bounded JSONPath query locally

Select one or many nodes with child names, array indexes, and wildcards, then inspect normalized result paths in your browser.

Local processingNo sign-upNo share URL

Run JSONPath

Inputs are limited to 1 MiB and stay in this browser tab.

Paste or edit the source. Tool Swim does not upload or save it.

Enter only the supported standards-based selector syntax documented below.

JSONPath matches

Nothing is placed in a URL, account, or remote log.

What this tool does

Strict, bounded, local processing

This focused evaluator supports root `$`, dot and bracket child names, non-negative array indexes, and child wildcards. Filters, slices, unions, functions, and recursive descent are rejected rather than guessed.

JSONPath returns a nodelist, even for one match

RFC 9535 defines JSONPath as a query language over a JSON value modeled as a tree of nodes. A query begins at the root identifier `$` and applies segments that select children or descendants. The result is a nodelist, which may contain no nodes, one node, or several nodes in a defined order.

That result model is different from asking for one exact address. A wildcard such as `$.items[*].id` intentionally selects the id child from every array element that has one. Tool Swim shows both the selected values and their normalized paths so an empty result is distinguishable from a matched JSON null.

The supported subset is deliberately explicit

This browser tool supports common child selection: `.name`, bracketed quoted names, numeric array indexes, and `*` wildcards. It does not evaluate filter expressions, functions, slices, unions, or recursive descent. Unsupported syntax produces an error before traversal instead of behaving like a different historical implementation.

For production rules, choose a library whose RFC 9535 conformance and security limits match the application. Test the exact expressions with fixtures that cover missing children, empty arrays, special characters in names, and more than one match.

Treat queries as code-like input

Complex query languages can consume significant resources or expose data a caller was not authorized to read. Tool Swim limits document size, nesting, and supported selectors, and it never uses JavaScript evaluation. The query and document remain inside the current browser execution.

A server that accepts user-supplied JSONPath still needs authorization at the data boundary, an allowlist or complexity budget, timeouts, and safe error reporting. A path expression should never become a substitute for deciding which fields the caller may access.

Primary standards

Questions and answers

Related JSON tools

Related JSON guides