FormatterHQ

JSON Navigator

Find exactly where a field lives. Click any key or array item and the navigator shows its full path, ready to copy into code, a JSONPath query or a bug report.

Loading tool…
Ready.

How to use the JSON Navigator

  1. Paste your JSON into the editor on the left, drop a file on it or choose one with Open. Sample loads a bookstore document.
  2. Type a key or a value in the filter box above the tree to narrow it to the branches that contain a match.
  3. Click a key or an array index. The Path bar shows its full path, such as $.store.book[2].isbn, with the type and value found there.
  4. Click Copy path to copy the path, or Copy value to copy the value stored at it.

A JSON navigator that tells you where every value is

In a large document, finding a value is easy with search, but knowing how to reach it from code is not. Is it book[2].isbn or store.book[2].isbn? Did you count the array index from zero? This JSON navigator removes the guesswork: it shows the document as a tree, and a click on any key, array item or branch writes out its full path from the root.

Example

Load the bookstore sample and type isbn in the filter box. The tree shrinks to the two books that have this field and the counter shows 2 matches. Click the first isbn key and the Path bar reads:

$.store.book[2].isbn    string · 0-553-21311-3

Branches have paths too. Clicking other rows of the sample gives:

$.store.book            array · [4]
$.store.book[2]         object · {5}
$.store.book[0].price   number · 8.95

Containers carry a note with their type and size, and each simple value is shown with its type, so you can tell the number 8.95 from a string holding the same digits. Copy path puts the path on the clipboard. Copy value copies what is stored there; for an object or array that is the whole branch as indented JSON.

How paths are written

  • $ is the root of the document.
  • Keys that are valid identifiers (letters, digits, _ or $, not starting with a digit) use dot notation: $.store.bicycle.
  • Any other key uses brackets with a quoted name, for example $.order["ship-to"]["zip code"] for keys containing a hyphen or a space.
  • Array elements use a zero-based index: $.store.book[3] is the fourth book.

Using a path in your code

The notation is close to JavaScript, so most paths translate directly. The path $.store.book[2].isbn becomes:

WhereExpression
JavaScriptdata.store.book[2].isbn
Pythondata["store"]["book"][2]["isbn"]
jq.store.book[2].isbn
JSONPath$.store.book[2].isbn

To select the same field from every element instead of one, replace the index with a wildcard, as in $.store.book[*].isbn, and try it in the JSONPath tester.

Typical uses

  • Writing a mapping or extraction rule for an integration tool that asks for a path.
  • Referring to a precise field in a bug report or API documentation.
  • Confirming whether a field sits inside an array, which means your code needs a loop, or directly under an object, which means a single lookup is enough.
  • Spotting inconsistent records: in the sample, only book[2] and book[3] have an isbn, which is visible from the "5 keys" notes on those two rows.
  • Checking which fields a CSV export would produce, since the JSON to CSV converter flattens nested keys in a similar dotted style.

The JSON viewer page describes the same tree from the browsing side, with formatting and sorting. The document is read in your browser and is not uploaded unless you use Save & Share.

Frequently asked questions

What path format does the JSON navigator use?
It uses JSONPath-style notation: $ for the root, .key for simple keys, ["key"] for keys with spaces or symbols, and [n] for array positions. Most paths can be used directly in JSONPath and translated easily to JavaScript, Python or jq.
Why do array paths start at [0]?
JSON arrays are indexed from zero in JavaScript, Python, jq and JSONPath, so the first element is [0]. The navigator uses the same numbering so paths can be copied into code without adjustment.
Can I get the path by clicking a node in the tree?
Yes. Click a key, an array index or a branch and its full path appears in the Path bar above the tree. Copy path puts it on the clipboard, and Copy value copies the value found at that path.
How do I get the paths of all items in an array at once?
Click one item to get its path and replace the index with [*], for example $.items[*].id, then run it in the JSONPath tester. It returns every matching value or, if you choose Matched paths, the concrete path of each one.

Last updated October 3, 2026

Related tools

JSON Parser Parse JSON online: errors with line and column, the parsed values with their types, and the pitfalls of big integers and duplicate keys. JSON Patch Tester (RFC 6902) Apply RFC 6902 JSON Patch operations (add, remove, replace, move, copy, test) to a document and see exactly which step fails. JSON Patch Generator (Diff to Patch) Compare two JSON documents and generate the RFC 6902 JSON Patch that transforms the first into the second, with optional test ops. JSON Path Finder Click any value in a JSON tree to get its path as JSONPath, JavaScript, Python, PHP, jq or JSON Pointer — or list every path. JSON Pretty Print Pretty print JSON online with a 4-space default, 2 or 3 spaces or tabs, and see the matching JavaScript, Python, PHP and jq commands. JSON Reader Open a .json file in your browser and read it as a collapsible tree, a sortable table or a graph, with a filter to find any value. JSON Schema to Sample JSON Generate realistic fake JSON that conforms to a JSON Schema — formats, enums, ranges and required fields respected. JSON Schema Validator Validate JSON against a JSON Schema (draft-07, 2019-09, 2020-12) with Ajv and get every error with its path and rule. JSON Serialize Online Serialize JSON into its most compact transport form, optionally wrapped as an escaped string literal for storage or messaging. JSON Sorter Sort JSON keys alphabetically at every level, ascending or descending. Optionally sort arrays of values for clean, comparable output. JSON Stringify Online Stringify JSON into an escaped string literal, exactly like JSON.stringify. Ready to embed JSON inside JSON, code or config values. JSON Syntax Highlighter Syntax highlight JSON with light, dark or Monokai themes and copy the colourised HTML for blogs, docs and slides.