FormatterHQ

JSON Graph Visualizer

See the shape of your JSON as a diagram: every object and array is a box linked to its children, with counts on each box and values colored by type.

Loading tool…
Ready.

How to use the JSON Graph Visualizer

  1. Paste your JSON into the editor on the left, drop a file on it or choose one with Open.
  2. The diagram is drawn on the Graph tab as you type, and the status bar lists the number of objects and arrays and the depth.
  3. Scroll the diagram to follow the connector lines from left to right, and click any box to show its path in the Path bar.
  4. Switch to the Tree tab for a compact collapsible tree, or to Table for arrays of records.

Visualize JSON structure as connected nodes

Reading raw JSON tells you the values; a diagram tells you the shape. This tool lets you visualize JSON data as a graph in which each object and array becomes a box that lists its simple values and is linked by lines to the objects and arrays nested inside it. Nesting that is hard to follow in indented text becomes obvious when you can see which branch hangs off which parent.

It is useful when explaining an API response to someone who does not read JSON every day, when designing a data model, or when you just want to understand an unfamiliar payload before writing code against it.

Example

For this input:

{"id":7,"tags":["api","v2"],"owner":{"name":"Ana"},"empty":[]}

the status bar reads Valid JSON · 2 objects, 2 arrays, depth 2 and the Graph tab draws four boxes with this content:

$ {4}              tags [2]
  id  7              0  "api"
                     1  "v2"

                   owner {1}
                     name  "Ana"

                   empty [0]

In the real diagram each box has a rounded border, and curved lines connect the root box on the left to the three boxes in the next column. The line above the diagram reads 4 nodes · click a node to select its path.

Reading the diagram

  • Boxes stand for objects and arrays. The top box is labeled $, a nested box carries the key it is stored under, and an object or array inside an array is labeled with its index, such as [0].
  • Badges show size: {4} marks an object with four keys and [2] marks an array with two elements. An empty container such as empty [0] has no rows.
  • Rows inside a box list its simple values, each with its key or array index. A box shows up to eight rows; a "+N more" line counts what was left out.
  • Colors identify types: key names in purple, strings in green, numbers in blue, booleans in amber and null in gray.
  • Columns. Every nesting level starts a new column to the right, so the diagram reads from the root on the left to the deepest values on the right.
  • Selecting. Clicking a box highlights it and shows its path, such as $.owner, in the Path bar, where Copy path and Copy value copy the path or the whole branch.

Limits on very large documents

A diagram with thousands of boxes is neither fast nor readable, so drawing stops after 150 boxes and the line above the diagram says that it was capped. A box whose children were left out counts them in its "+N more" line. For big files, narrow the data first: extract the part you care about with the JSONPath tester, for example $.orders[0] to diagram a single record, then visualize that.

The same size warning applies to wide arrays. A list of 500 similar records would need 500 similar boxes; one or two representative items usually explain the structure better.

Saving and sharing the diagram

The diagram itself is not exported as a file. Copy and Download above the editor always take the JSON text, whichever tab is open; Download saves it as a .json file. To keep a picture of the graph, take a screenshot of the Graph tab. When you want to hand over a link rather than a file, Save & Share stores the input and gives you a URL that opens the same JSON here, where the diagram is drawn again.

Graph or tree?

The Tree tab on this page switches to the compact collapsible tree used by the JSON tree viewer. The tree fits more data on screen and renders branches lazily, so it copes better with large files. The graph uses more space per node but shows parent-child relationships more clearly, which suits presentations, screenshots and first-time exploration. If what you need is the path to a specific value, the JSON navigator explains how to find and copy it.

Privacy

The diagram is generated in your browser from the JSON you provide and is not sent to a server. Save & Share is the only feature that passes content through our server.

Frequently asked questions

Can I export the JSON graph as an image?
No. The diagram cannot be exported as PNG, SVG or HTML; Copy and Download give you the JSON text. To keep the picture, take a screenshot of the Graph tab or print the page to PDF from your browser.
Why does my graph stop at 150 nodes?
The diagram is capped at 150 boxes to keep it readable and the page responsive, and a box whose children were left out shows a +N more line. Visualize a smaller part of the document, such as one record extracted with a JSONPath query, or use the Tree tab, which shows everything.
Does the visualizer show relationships between records, such as IDs that point to other objects?
No. It shows the nesting of the JSON document, which is always a tree. References expressed as ID values, like a manager field containing another employee ID, are displayed as ordinary values and not drawn as links.
Can I fold or collapse parts of the graph?
No. The graph always draws every box up to the 150-node cap. For folding, switch to the Tree tab, where each branch has a triangle and the Expand all and Collapse all buttons open or close everything.

Last updated October 3, 2026

Related tools

Bar Graph Maker Make bar charts online from CSV or JSON. Grouped bars for multiple series, negative values, custom colours and SVG export. Line Graph Maker Create line graphs online from CSV or JSON data. Multiple series, axis labels, custom colours and free SVG download. Open Graph & Twitter Card Preview Paste your page’s meta tags and preview the link on Facebook, X/Twitter, LinkedIn, Slack and Discord, with fixes for missing tags. jq Playground Run jq filters on JSON in your browser with real jq 1.8: live output, -r -c -s -n -S and --arg options, clear errors and a clickable cheat sheet. JSON Cleaner Clean JSON by removing null values, empty strings, empty arrays and empty objects at any depth. Optionally trim whitespace in strings. JSON Decode Online Decode JSON strings online. Convert escaped or encoded JSON text into readable, formatted JSON, similar to json_decode. JSON Deserialize Online Deserialize an escaped JSON payload into formatted JSON, then map it to typed objects in JavaScript, Python, Java or C# safely. JSON Editor Edit JSON online with a live tree preview, instant validation and one-click formatting, repair and minification. JSON Encode Online JSON encode text or a document into an escaped string, with each escaping rule explained and the json_encode flags that give identical output. JSON Fixer & Repair Fix broken JSON automatically: add missing quotes, commas and brackets, remove comments and trailing commas, and convert Python literals. JSON Flatten Flatten nested JSON into single-level key paths like user.address.city, with dot, custom or bracket notation for arrays. JSON Formatter Format, beautify and validate JSON online. Pretty print minified JSON with 2, 3, 4 space or tab indentation and pinpoint syntax errors.