JSON Path Finder
Paste JSON, explore the interactive tree, click any node for its JSONPath, and query or filter nested data with expressions — 100% private in your browser.
Last updated June 29, 2026
$ (click a node in the tree)Tree view appears here once you paste valid JSON
Click a node in the JSON tree
to see its path, type, and value here
What is a JSON Path Finder?
A JSON Path Finder helps you navigate deeply nested JSON and discover the exact JSONPath expression for any value. Instead of manually counting brackets and guessing whether a field lives at $.data.items[0].name or $..name, you click the tree and copy the path instantly. You can also run JSONPath queries to filter arrays, extract fields from API responses, and debug configuration files — all without sending data to a server.
How It Works
- Paste JSON — enter or paste your JSON data into the editor, or load a sample to get started quickly.
- Explore the tree — expand objects and arrays to navigate through your JSON structure visually.
- Click a node — the JSONPath appears instantly in the Path bar at the top, with detailed type and value info shown on the right panel.
- Copy & use — copy the path for use in your code, API tests, configuration files, or data pipelines.
JSONPath Query Cheat Sheet
Most day-to-day JSONPath queries use a small set of operators. Keep this table handy when building expressions in the Evaluate panel or copying paths from the tree:
| Expression | Returns |
|---|---|
$.store.book[0].title | First book's title |
$.store.book[*].author | Every book's author |
$..author | All author values at any depth |
$.store.book[-1] | Last book in the array |
$.store.book[0:2] | First two books (end index exclusive) |
$.store.book[?(@.price < 10)] | Books cheaper than 10 |
$..* | Every value in the document |
The $ is always the root, @ refers to the current element inside a filter, and .. scans recursively at every depth.
Supported JSONPath Syntax
This tool supports all standard JSONPath operators, from simple dot notation to advanced filters and recursive descent:
| Operator | Example | Description |
|---|---|---|
$.property | $.store.name | Dot notation — access a direct child property. |
$['key'] | $['store']['name'] | Bracket notation — useful for keys with spaces or special characters. |
[*] | $.store.book[*] | Wildcard — select all elements in an array or all properties in an object. |
.. | $..price | Recursive descent — find the given property at any depth. |
[?(@.exp)] | $.book[?(@.price < 15)] | Filter expression — select array items matching a condition. |
[start:end] | $.book[0:3] | Slice — select a portion of an array by index range. |
[i,j,k] | $.book[0,2,4] | Union — select multiple specific indices or keys. |
{.key} | {.items[*].name} | Kubernetes-style curly-brace syntax for config and YAML workflows. |
The Two Operators That Cause the Most Confusion
Recursive descent (..) is powerful but blunt — $..author finds every author anywhere in the tree. That is exactly what you want until it returns far more than expected on a large document. Narrow it with a specific key, and prefer an explicit path like $.store.book[*].author when you know the structure.
Filters (?()) trip people on syntax: the current element must be @ (not $), string comparisons need quotes (?(@.name == 'Jane')), and the operator is == not ===. Get those three right and filters become the most useful operator in the set.
JSONPath vs. JMESPath vs. jq
They solve overlapping problems with different trade-offs:
- JSONPath — XPath-style, great for selecting values from API responses; now standardized as RFC 9535.
- JMESPath— also query-focused, with a more consistent spec; used by AWS CLI's
--queryflag. - jq — a full command-line language that can transform, reshape, and compute — not just select. Steeper to learn, far more powerful for editing JSON.
If you only need to find values, JSONPath is the simplest starting point. If you need to reshape JSON, that is jq territory. This tool is built for the find-and-debug workflow.
Debugging a Query That Returns Nothing
An empty result almost always means a path mismatch. The usual suspects:
- Case sensitivity —
$.User≠$.user - Missing array index — a value inside an array needs
[0]or[*] - Wrong nesting level — the field is one object deeper than you expect
Start broad with $.* to list top-level keys, then walk down level by level using the tree view. Everything runs locally in your browser, so you can iterate on sensitive API responses without anything leaving your device.
Troubleshooting Common JSONPath Errors
- Filter syntax error — use
?(@.property operator value). The current element must be@. Strings need quotes:?(@.name == 'John'). - Recursive descent returns too many results — follow
..with a specific property name ($..author) instead of$..*unless you truly need every value. - Array slice behaves unexpectedly —
[start:end]is inclusive of start, exclusive of end.[0:3]returns indices 0, 1, 2. Use[-1]for the last element.
What You Can Do
- Discover JSONPath expressions — click any node in the tree to get its exact path, ready to paste into your code or config.
- Evaluate JSONPath queries — test expressions against real JSON data and see every matching value with its full path.
- Beautify & Minify — format JSON for readability with proper indentation, or compress it into a single line for storage or transmission.
- Search the JSON tree — quickly locate keys or values inside large documents using the built-in tree search.
- 100% client-side & private — all processing happens in your browser. No data is ever sent to a server, so you can safely work with sensitive or proprietary JSON.
Common Use Cases
- API development & testing — extract specific fields from large API responses to verify structure and data.
- Data transformation pipelines — build correct JSONPath expressions for tools like Apache Camel, Logstash, or custom ETL scripts.
- Kubernetes & DevOps configs — debug JSONPath expressions used in
kubectloutput templates and Helm values. - Automation & CI/CD — validate JSON configuration files and extract version numbers, flags, or secrets paths.
- Learning JSONPath — see how each operator behaves on real data with immediate visual feedback.
Frequently Asked Questions About JSON Path Finder
What is a JSON Path Finder?
A JSON Path Finder helps you discover JSONPath expressions by exploring your JSON structure visually. Paste your JSON, browse the tree, and click any node to instantly see its JSONPath. You can also evaluate JSONPath queries against your data to extract matching values.
How do I use this JSON Path Finder online?
Paste your JSON into the editor on the left. The tree view below shows your JSON structure — click any node to see its JSONPath and value on the right. Use the 'Evaluate' section to test custom JSONPath expressions against your data. No installation or account is required.
What JSONPath syntax is supported?
All standard JSONPath operators: dot notation ($.property), bracket notation ($['key']), wildcards ($[*]), recursive descent ($..property), filters ($[?(@.age > 18)]), slices ($[0:3]), unions ($[0,1,2]), and Kubernetes-style {.items[*]}.
Is my data sent to a server?
No. All processing happens entirely in your browser. No data is ever sent to any server — you can safely use this with sensitive or private JSON data.
How is this different from JSONPath Explainer?
The JSONPath Explainer tells you what a JSONPath expression does in plain English. The JSON Path Finder evaluates expressions against real JSON data and shows matching values. They complement each other: explain to learn, finder to test.
Can I use this tool with large JSON files?
Yes. Because all processing is done locally in your browser, performance depends on your device. The tool handles multi-megabyte JSON documents smoothly. For extremely large files (tens of megabytes), you may notice slight delays when expanding deeply nested structures.
How do I find the JSONPath of a deeply nested property?
Simply paste your JSON and expand the tree nodes by clicking the chevron arrows next to objects and arrays. Navigate to the property you need and click it — the exact JSONPath appears instantly in the Path bar at the top of the page, no matter how deeply nested it is.
Why does my JSONPath query return nothing?
An empty result usually means a path mismatch. Check case sensitivity ($.User ≠ $.user), confirm array values need an index ([0] or [*]), and verify you are at the correct nesting level. Start broad with $.* to list top-level keys, then walk down one level at a time using the tree view.
What is the difference between JSONPath, JMESPath, and jq?
JSONPath is XPath-style and ideal for selecting values from API responses. JMESPath (used by AWS CLI --query) has a more consistent spec for projection. jq is a full command-line language that can transform and reshape JSON, not just select it. Use JSONPath when you need to find values; use jq when you need to edit or restructure JSON.
Why do different JSONPath tools give different results?
JSONPath was informal for years before RFC 9535 (2024), so libraries diverged on filters, recursive descent, and edge cases. Stick to the common core — root $, child ., recursive .., wildcard *, index [n], slice [a:b], filter ?() — and test against the engine your production code uses.
Can JSONPath modify data or only read it?
JSONPath is read-only. It selects and extracts values but cannot set or delete them. To modify JSON based on a path, read values with JSONPath in your code, then apply changes in your programming language — or use jq for command-line transformations.