JSONPath Online Tester & Debugger

Paste JSON, enter a JSONPath expression, and inspect matches with normalized paths and value types. Includes tree location, query history, and examples—all processed locally in your browser.

JSON
Ctrl + Enter to run

أصلح أخطاء JSON قبل تشغيل JSONPath.

RFC 9535: members, indexes, wildcards, slices, descendants, filters, and function expressions.

How to use this tool

  1. 1Paste or upload JSON

    Paste an API response or config into the editor, or upload a local text file. After validation, switch between code, tree, and table views.

  2. 2Enter JSONPath and run

    Type an expression and click Run, or press Ctrl/Cmd + Enter. Valid queries list every match; invalid queries show a clear error.

  3. 3Inspect results and copy paths

    Click a result to locate it in tree/code. Copy normalized JSONPath, JSON Pointer, JavaScript optional chaining, or the node value.

  4. 4Use examples and history

    Load common patterns from the example library, or re-run up to 20 local history entries. History stores expressions only—not your JSON.

What is JSONPath?

  • Query structured JSON

    JSONPath (RFC 9535) selects one or more nodes from JSON using $, members, indexes, wildcards, slices, descendants, and filters—ideal for API debugging and field extraction.

  • Tool page vs tutorial

    This page is a runnable tester. The tutorial article teaches concepts. They link to each other but keep distinct titles and intent.

JSONPath syntax cheat sheet

Executed via jsonpath-rfc9535 (RFC 9535). Function expressions belong inside filters (e.g. [?match(@.name, "^A")]), not as bare top-level calls without $.

Root
$
Member
$.name
$['name']
Index / wildcard
$[0]
$[*]
Slice
$[1:5]
Descendant
$..name
Filter
$[?@.price < 100]

RFC 9535 vs legacy JSONPath

RFC 9535 standardizes filters, normalized paths, and functions (length, count, match, search, value). Legacy dialects may accept non-standard syntax.

This tool does not claim full legacy compatibility. Rewrite older expressions to RFC 9535 when they fail.

JSONPath vs JSON Pointer vs optional chaining

JSONPath: a query language that can return many matches.

JSON Pointer (RFC 6901): identifies a single location; escape ~ as ~0 and / as ~1.

JavaScript optional chaining: for app code, e.g. data?.users?.[0]?.["profile.name"].

Common mistakes

Missing leading $, or writing top-level length($.a) instead of a $-rooted query.

Treating dotted keys as nested paths—use $['profile.name'] for a literal key.

Trusting stale results after editing JSON—the UI asks you to re-run.

Using $..* on huge documents and hitting the timeout—narrow the query.

Capabilities

  • RFC 9535 execution

    Members, indexes, wildcards, slices, descendants, filters, and in-filter functions with typed result previews.

  • Linked views

    Code, tree, and table share JSON, the query, and selection. Click results to locate source nodes.

  • Local-first performance

    Parse and query run in a Web Worker. Larger files enter a performance mode with clear size hints.

FAQ

Is my data uploaded?
No. JSON and queries stay in the browser. Analytics never send expressions or node values.
Do you support every legacy JSONPath dialect?
No. This tool targets RFC 9535. Non-standard legacy syntax may error—rewrite to the standard.
How is this different from the JSONPath tutorial?
The tutorial teaches; this page runs queries immediately. Use both via related links.
What if there are too many results?
Results use virtual scrolling and caps. If truncated, narrow the expression and retry.