JSON Tree Viewer
Explore JSON as a collapsible tree: search keys and values, copy JSON Pointer paths and subtree values, expand long strings on demand, and see exact digits where JavaScript would round. Everything stays in your browser.
Review repairs before anything changes
Valid JSON, with interoperability warnings
Tip: press Ctrl+Enter (Cmd+Enter on Mac) in the editor to format. Drop a .json file anywhere on the editor to open it.
Loading... Private by design: your JSON never leaves the browser. No upload, no server, no logging.
Read structure, not brackets
A raw API response tells you almost nothing at a glance: the answer you need is four levels deep behind a wall of braces. The tree view turns the same document into collapsible objects and arrays with item counts on every branch, so you can fold away the noise and drill into the part that matters. Long strings truncate with a Show all control instead of being cut silently, and every node is one click from its JSON Pointer path or a copy of its value.
The tree is built from your document text, not from a parsed JavaScript object. That makes it honest in a way most viewers are not: a 19-digit database ID displays all 19 digits with a warning flag, duplicate keys appear as often as they occur in the source, and nothing you see has been normalized behind your back. Validation runs live with exact error positions whenever the document does not parse.
Built for API debugging
Typical session: paste a webhook payload, search for the field the bug report mentions, copy its pointer for the ticket, copy the surrounding object for a test fixture, then switch to the Formatted tab and minify for the reproduction script. All of it happens locally in the tab, so payloads full of tokens and customer data never touch a server.
JSON tree viewer FAQ
How do I find a key buried deep in a JSON payload?
Switch to the Tree tab and type in the search box. The tree filters to keys and values containing your text, keeping the ancestors visible so you can see where each match lives. Click a node and use Copy path to get its JSON Pointer, like /owner/plan or /items/3/sku, ready to paste into code, jq expressions or API docs.
What is a JSON Pointer and how do I use it?
JSON Pointer (RFC 6901) is the standard way to address a single value inside a document: a chain of segments separated by slashes, with array positions as numbers, like /features/0 or /owner/name. Special characters in keys are escaped as ~0 for tilde and ~1 for slash. Many tools accept pointers directly, including JSON Patch operations, OpenAPI documents and most validation libraries. The Copy path button above produces exactly this format for any node you select.
Why does the tree show a warning next to some numbers?
The warning flag marks numbers that are valid JSON but unsafe as JavaScript numbers: integers beyond 9007199254740991 that JSON.parse() would round, and values so large or small they become Infinity or 0. The tree displays the exact digits from your document rather than the rounded JavaScript value, which is something most tree viewers get wrong because they build the tree after parsing.
Can I copy just one part of a large JSON document?
Yes. Select any node in the tree and press Copy value: strings copy their decoded text, numbers copy their exact digits, and objects or arrays copy as formatted JSON of just that subtree. This is the fastest way to extract one record from a large API response without hand-editing braces.
Is there a limit to how much JSON the tree can display?
The tree renders the first 3,000 nodes and says so when a document is larger, because hundreds of thousands of DOM nodes would freeze the page; the Formatted tab always shows the complete document. Above 3 MB the tree switches off entirely and formatting continues to work up to the 25 MB hard limit. Search covers documents up to 50,000 nodes.
More free tools: JSON Formatter · JSON Validator · JSON Minifier · Base64 Encoder