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.
How to use this tool
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.
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.
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.
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 $.
$$.name
$['name']$[0]
$[*]$[1:5]$..name$[?@.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.