JSON Viewer
This JSON tree viewer shows pasted or dropped JSON as a collapsible tree: search keys and values, copy the JSONPath of any node, and view arrays as a table — even for 10 MB files. Free, no signup, and nothing is uploaded; it all runs in your browser.
How to view JSON as a tree
- Load your JSON. Paste JSON into the input box, drag a .json file onto it, click Open file, or click Sample to try an example.
- Explore the tree. Click the arrows to expand or collapse objects and arrays, or use Expand all, Collapse all and the Level selector to open the tree to a set depth.
- Search. Type in the search box to find matching keys and values. Matches are highlighted, their parents expand automatically, and Enter or the Next and Prev buttons step through them.
- Copy paths and values. Click any node to see its JSONPath (like $.products[0].name) and JavaScript path, then copy either one or the node's value. Switch to Table to see an array of objects as rows and columns.
Reading JSONPath and JavaScript paths
Every value in a JSON document has an address. JSONPath writes it starting from $, the root: $.products[0].name means “the name of the first item in products”. Keys that aren't plain identifiers — with spaces, dashes or dots — use bracket notation, as in $.hours['mon-fri']. JSONPath expressions work in Kubernetes kubectl -o jsonpath, JSONPath libraries in most languages and many API testing tools.
The JavaScript path is the same address as code: data.products[0].name. Paste it after the variable that holds your parsed response — rename data to res.body or whatever you use — and in TypeScript prefer optional chaining (data.products?.[0]?.name) when a field might be missing.
Tips for exploring large or unfamiliar JSON
- Start shallow. Set Level to 1 or 2 to see the top-level shape first; the counts next to each object and array tell you where the bulk of the data is.
- Search instead of scrolling. Searching for a key such as
emailor an ID jumps straight to it and opens only the branches you need. - Use Table for record lists. API responses are often arrays of objects; select one and switch to Table to compare fields across rows and spot missing values (shown as —).
- Watch big numbers. JSON numbers larger than 253 (such as 64-bit IDs) lose precision in every JavaScript-based viewer, including this one. APIs usually send such IDs as strings for that reason.
Related tools
Frequently Asked Questions
How do I view a JSON file as a tree?↓
Drag the .json file onto the JSON Viewer or click Open file. It is parsed in your browser and shown as a collapsible tree, opened two levels deep (one level for very large documents). Click the arrows to expand nodes, or use Expand all and the Level selector.
How do I find the JSONPath of a value?↓
Click the key or value in the tree. The panel next to it shows the JSONPath, such as $.products[0].name, and the equivalent JavaScript path, such as data.products[0].name, each with a Copy button.
Can it open large JSON files?↓
Yes. Files of 10 MB and more open fine because only the rows on screen are drawn, even when hundreds of thousands of nodes are expanded. The practical limit is your device's memory; very large files are viewed without being loaded into the text box.
Is my JSON uploaded to a server?↓
No. Parsing, searching and rendering all happen locally in your browser with JavaScript. Your data never leaves your device, so it is safe to inspect API responses, logs or config files that contain private information.
Why does it say my JSON is invalid?↓
The viewer points to the exact line and column of the first problem. Common causes are trailing commas, single quotes instead of double quotes, unquoted keys, comments, and NaN or undefined values — all allowed in JavaScript but not in strict JSON.
What is the difference between a JSON viewer and a JSON formatter?↓
A formatter rewrites JSON as indented text you can copy. A viewer lets you navigate the structure: fold and unfold nodes, search, and get the path to any value. Use the viewer to understand data, and the formatter to clean it up.
Last updated: