How to use it
- Drop a .json file here, open one with the button, or paste the text.
- Click ▸ to expand a node in the tree; “Expand all” opens everything.
- Type in the filter box: only branches with a match stay visible.
- Click an element and copy its JSONPath ($.a[0].b), JavaScript path or value.
A tree view built for big files
The viewer uses our own JSON parser, which handles a 1.5 MB file in about 0.2 seconds. The first two levels open by default, and large arrays render 200 items at a time, so a list of tens of thousands of entries won't freeze your browser.
Integers longer than 16 digits (Twitter/X or database IDs, for example) are kept exactly. The browser's built-in JSON.parse silently corrupts them: 12345678901234567890 → 12345678901234567000.
JSONPath and JavaScript paths
Select an element and you get two paths:
- JSONPath (RFC 9535):
$.store.book[0].title, or$['x-api-key']for unusual keys. Handy in Postman, jq-style tools and tests. - JavaScript:
data.store.book[0].title, ordata["x-api-key"]. Paste it straight into your code.
You can also copy the element's value as formatted JSON.
Broken JSON? The viewer fixes it
If the input isn't standard JSON (comments, trailing commas, single quotes, Python-style True/None, unquoted keys, unclosed brackets), a “Fix it automatically” button appears next to the error, and the repaired version goes into the tree. For detailed formatting, see the JSON formatter.
Everything runs in your browser. Your input never reaches analytics, and the tool area is masked from session replay.
Frequently asked questions
How can I view a large JSON file?
Drop it here or open it with the button. The tree only renders expanded branches, so big files stay fast.
What is JSONPath?
A standard way to point to an element in JSON, such as $.items[3].name (RFC 9535).
Is my file uploaded?
No. It's read in your browser.
Why do big numbers change in other viewers?
JavaScript stores integers above 2^53 imprecisely. We keep numbers as their original text.