From cursor position to query expression
Path Finder recursively walks your JSON structure and builds a flat index of every reachable value -- objects, arrays, strings, numbers, booleans, and nulls. Each entry maps a canonical JSONPath expression (e.g., $.store.books[0].title) to the value at that location. Click any row to copy the path as a JSONPath, JQ, or JSONata expression, ready to paste into a query tool, shell pipeline, or transformation script. The path list updates live as you edit the JSON, so you can explore deeply nested or unfamiliar payloads without memorizing the structure.
How to use it
- 1Paste your JSON in the left editor. Paths are computed on every keystroke -- no button needed.
- 2Choose your target syntax: JSONPath (
$.store.books[0]), JQ (.store.books[0]), or JSONata (store.books[0]). - 3Use the filter box to narrow by path segment or value substring.
- 4Click any row to copy the expression to your clipboard.
The mechanics
- Three expression syntaxes — Toggle between JSONPath (
RFC 9535bracket notation), JQ (pipe-friendly dot notation), and JSONata (lightweight query language). The same internal path drives all three. - Instant path enumeration — The walker runs synchronously on every input change via
useMemo, so paths appear as you type -- no debounce lag. - Type-colored value previews — Each value is color-coded by type (string, number, boolean,
null, object, array) using CSS custom properties, so you can scan for the right node at a glance. - Substring filtering — The filter searches both paths and value previews, case-insensitively. Useful for finding a field name when you know the value but not the nesting depth.
- Click-to-copy — One click copies the expression in your selected syntax. A checkmark confirms the copy without disrupting your position in the list.
Real-world scenarios
- Crafting JQ filters — Exploring a large API response? Find the path visually, copy the JQ expression, and pipe it straight into your terminal.
- Building JSONata transforms — Node-RED, Stedi, and other integration platforms use JSONata. Copy the expression instead of hand-writing nested dot notation.
- Debugging nested configs — Kubernetes manifests, Terraform state files, and
package-lock.jsoncan be hundreds of levels deep. Path Finder flattens them into a searchable list. - Documenting API response shapes — Copy paths into your API docs or test assertions to reference exact locations in a payload.
Expression output for the same path
// Given JSON:
{ "store": { "books": [{ "title": "Clean Code" }] } }
// JSONPath: $.store.books[0].title
// JQ: .store.books[0].title
// JSONata: store.books[0].titleQuestions
How deep does the walker go?
It recurses through every object key and array index with no depth limit. Extremely large documents (100K+ nodes) may slow the browser since the walk is synchronous, but typical API responses process in under a millisecond.
Does this execute the path expression against the data?
No. Path Finder generates expressions -- it does not evaluate them. To run a JSONPath or JQ query against your data, use the Query tool.
Why bracket notation for JSONPath?
Bracket notation ($["store"]["books"][0]) is unambiguous for keys that contain dots, spaces, or special characters. The tool uses dot notation where safe and falls back to brackets otherwise.