JSON Tree Viewer
Paste JSON and browse it as a collapsible tree. Search by key or value, or click any node to copy its path (such as $.orders[0].price). Handy for getting a feel for the structure of a large API response. To just pretty-print or minify, use the JSON Formatter; to extract values by path, try the JSON Path / JSON Pointer Tester.
🔒 Runs in your browser · Your data is never sent to a server
Only part of the tree was expanded because it has many nodes. Open the rest individually.
Notes
- Only the nodes you open are rendered, so collapsed parts of a large JSON add no load.
- "Expand all" stops after a fixed number of nodes to keep the page responsive. Open the rest individually.
- Search matches keys and primitive values (strings, numbers, booleans, null) by case-insensitive substring. Matching nodes are expanded automatically.
- JSON numbers are handled as JavaScript numbers, so very large integers may be shown with reduced precision.
Glossary
JSONPath
A notation for pointing at an element inside JSON. $ is the root, as in $.user.name or $.items[0].
JSON Pointer
A notation defined in RFC 6901 for pointing at an element in JSON, written with slashes as in /user/name or /items/0. The root is the empty string.
Primitive value
A value with no children: a string, number, boolean, or null. Objects and arrays are the values that contain children.
FAQ
How can I use the copied path?
JSONPath such as $.orders[0].price works in the JSON Path / JSON Pointer Tester and many libraries for extracting values. JSON Pointer such as /orders/0/price is used by JSON Patch and OpenAPI references. The JavaScript notation, like data.orders[0].price, can be pasted into code to access the value.
Can it open large JSON files?
JSON up to a few megabytes displays fine in the browser. The tree renders only the nodes you expand, so collapsed parts add no load. "Expand all" stops after a fixed number of nodes.
Does search look at keys or values?
Both. It finds case-insensitive substrings in key names and in string, number, boolean, and null values. The tree is expanded automatically down to each match.
How are hyphenated or non-ASCII keys written in a path?
JSONPath and JavaScript notation use quoted brackets, such as $["first-name"]. JSON Pointer writes the key as is, escaping a slash as ~1 and a tilde as ~0.
Share this page
