Skip to content

JSON Visualizer

This JSON visualizer draws your JSON as a graph. Each object and array becomes a card, linked to the cards nested inside it.

Input · JSON
company"Northwind Labs"
founded2019
publicfalse
offices[2]
investors[2]
0{3}
1{3}
0{2}
1{2}
city"Lisbon"
staff42
teams[2]
city"Toronto"
staff17
teams[1]
name"Seedcamp"
round"Seed"
name"Atomico"
round"A"
0{3}
1{3}
0{3}
name"Platform"
lead"R. Costa"
stack[2]
name"Design"
lead"M. Silva"
stack[1]
name"Data"
lead"A. Chen"
stack[2]
0"Go"
1"Postgres"
0"Figma"
0"Python"
1"dbt"
Valid JSON5 top-level keys · depth 7 · 24 keysRuns in your browser

Load from a URL

Your browser fetches it directly, so the server must allow cross-origin requests (CORS).

How the JSON visualizer draws your data

Strings, numbers, booleans and null are rows inside their card. A nested object or array is a row showing its size, like {2} or [3], with a line to its own card. Cards line up in columns by depth from root on the left, and array items are titled by index, such as teams[0].

{
  "league": "Sunday 5-a-side",
  "season": 2026,
  "teams": [
    { "name": "Red Kites", "captain": { "name": "Ines", "number": 9 }, "players": ["Ines", "Tomas", "Bea"] },
    { "name": "Night Owls", "captain": { "name": "Raj", "number": 4 }, "players": ["Raj", "Lena"] }
  ],
  "venue": { "name": "Riverside Park", "pitch": 3 }
}

This draws nine cards in four columns: root; teams and venue; teams[0] and teams[1]; then a captain and a players card for each team.

Controls

  • Pan: drag the background.
  • Zoom: scroll, pinch on a trackpad or touch screen, or press + and −. Fit shows the whole graph again.
  • Collapse: click a card’s header. It then shows how many cards it hides: +6 for teams above.
  • Export: PNG saves the whole graph, not only the visible part, at twice screen resolution in the current theme’s colors. Collapse what you don’t need first.

Limits on large documents

The graph is built breadth first, so the deepest branches are the first to be left out:

  • Up to 600 cards are drawn, and a note says how many were left out.
  • Each card lists its first 12 keys or items and sums up the rest, as in … 38 more. Cards under those rows are not drawn, so an array of 50 records shows 12.
  • Strings are cut to 40 characters.

The tree in the JSON viewer and the JSON to table view show every value.

When a graph helps

Use it to learn the shape of an unfamiliar API response, explain a payload in a ticket, or spot repeated structures. If you came looking for a JSON Crack alternative, the idea is the same: objects as nodes, nesting as edges, here in one editor with the Tree and Table tabs. To describe the shape in text, use the JSON schema generator.

Questions

Does the graph update while I edit?

Yes. It redraws a moment after you stop typing and fits itself to the panel again. Collapsed cards open back up after each edit.

Can I visualize YAML or XML?

Convert it first with YAML to JSON or XML to JSON, then paste the result here.

Why does the graph start zoomed out?

It fits the whole graph into the panel. Zoom in on the part you need, or collapse branches and press Fit to enlarge what is left.

Related tools

Esc