JSON Viewer — explore JSON as a tree
Paste JSON and open it one level at a time instead of scrolling thousands of lines. Search keys and values, copy the path to any node, and keep large files responsive — only what you expand is rendered. Nothing is uploaded.
JSON
emptyTree
nothing to showWhy a tree beats scrolling
A formatted 5,000-line API response is readable in the sense that every character is on screen somewhere, and unreadable in the sense that nobody can hold its shape in their head. A tree inverts that: you see the top level, open the one branch you care about, and the rest stays out of the way. It is the difference between reading a document and navigating one.
Copy the path, not the value
Every row has a copy control that yields its JSONPath — $.users[0].region, $['odd key']. That string pastes straight into jq, a debugger watch expression or a test assertion, which is usually what you actually wanted when you went looking for a value. Object keys use dot notation where they can and brackets where they must; array indices always use brackets, so an array is never confused with an object whose keys happen to be "0" and "1".
Search expands to what it finds
Typing in the search box matches keys, values, or both, and opens every ancestor of every match so the results are actually reachable. Collapsing clears the search and returns to the top level. A match nobody can see is not a search result.
Why large files stay fast
The tree builds rows only for nodes that are currently open, so the work is proportional to what you have expanded rather than to the size of the file. A 50 MB document opens as a single row and costs nothing until you start opening things. Rendering is virtualized on top of that, so even a fully expanded branch mounts only the rows on screen.
The one control that can undo this is Expand all, which is why it has a row budget: past it, the tree opens as much as fits and tells you it stopped rather than building a model that freezes the tab.
If it will not open, it will not parse
A tree has to parse before it can show anything, so invalid JSON produces an error with the line and column rather than a partial tree. The JSON validator can repair the common mistakes, and the JSON error reference explains what each parser message means.
Nothing is uploaded
The parsing and the tree both run in your own browser. API responses are exactly the kind of document that carries tokens, customer records and internal identifiers, and none of it is transmitted, stored or logged here.