How to browse large json files with an interactive tree view
- Step 1Check the file size against the limit — Free uploads cap at 2 MB; Pro at 100 MB. If your export is bigger than your tier allows, slice it first (e.g. export a subset, or take a representative sample) so the structure is still meaningful within the limit.
- Step 2Set Max depth BEFORE viewing for very large files — For a big file, lower Max depth to 2 or 3 first. This builds children only for the top levels, so a 50,000-record array renders as one
Array(50000)node plus the envelope — fast and readable. You can raise it later to drill in. - Step 3Drop the file onto the viewer — Accepted extensions:
.json,.ndjson,.jsonl,.txt. For a large file use a single.jsondocument. The whole file is read and parsed in your browser; nothing uploads. - Step 4Click View Tree and read the two key numbers — The toolbar shows total node count and max depth reached. A high node count with low depth means a wide-but-shallow file (a big array of small records); high depth means deep nesting. This tells you how to approach it.
- Step 5Drill into one branch, not the whole file — Expand only the branch you need. For a 50k-element array, expand a few elements to confirm the record shape, then search for the specific record by an id or value rather than expanding everything (Expand all on a huge file renders a lot of rows).
- Step 6Copy the path and process downstream — Hover the field and Copy to grab
$.records[1234].id. Use that path in json-path-extractor to pull the field across all records, or json-flattener to flatten the file into rows. Download exports the tree shape as<name>.tree.json.
Tier limits for large files
File-size ceilings for the JSON tools. The viewer reads the whole file into the browser, so the size limit is the practical constraint for big exports.
| Tier | Max file size | Batch files | Notes |
|---|---|---|---|
| Free | 2 MB (2,000,000 bytes) | 1 | Fine for sampled exports and most single dumps |
| Pro | 100 MB (100,000,000 bytes) | 10 | Removes the file-size limit for big bulk exports |
| Beyond Pro | slice the file | — | For files past 100 MB, export a subset or sample first |
Choosing Max depth for big files
How the Max depth setting (1–20, default 20) changes what gets rendered. Containers at the cap still appear with their child count; only their children aren't built.
| Max depth | What renders | Best for |
|---|---|---|
| 1 | Root + its immediate children as counts | Confirming the top-level envelope only |
| 2 (default open level) | Two levels of structure | Reading the shape of a big array-of-objects |
| 3–5 | A few levels deep | Drilling into one nested section |
| 20 (default) | Full structure (up to 20 levels) | Small-to-medium files where you want everything |
Cookbook
Large-file navigation walkthroughs. Record values anonymised; structures mirror real bulk exports and dumps.
Read the shape of a 50k-record export instantly
ExampleA bulk export is one giant array. Cap Max depth so it renders as a single node plus the shape of the first records, not 50,000 expanded rows.
Set Max depth = 3, then View Tree. $ ............ Array(50000) $[0] ......... Object(6) $[0].id ...... 1001 $[0].name .... "..." $[1] ......... Object(6) ... Toolbar: 350,012 nodes · max depth 3. You know it's a wide array of 6-key objects without scrolling.
Inspect only the envelope of a deep dump
ExampleA database dump nests metadata around the records. You want the envelope and counts, not every record. Cap depth at 2.
Max depth = 2: $ ............ Object(4) $.meta ....... Object(5) $.schema ..... Object(12) $.records .... Array(48210) ← counted, not expanded $.exportedAt . "2026-05-01T.." You see the dump's layout and that it holds 48,210 records, with the render staying light.
Find one record in a huge array by value
ExampleYou need record id 88231 out of tens of thousands. Searching is faster than expanding the array.
Search: 88231 → auto-expands the matching branch: $[12774].id ... 88231 $[12774] ...... Object(6) Copy $[12774] to grab that record's path. Search hides the other 49,999 elements so you focus on the hit.
Decide a downstream tool from the shape
ExampleBefore flattening or converting, the tree's two numbers tell you whether the file is wide-and-shallow or deeply nested, which guides the next step.
Toolbar reads: 612,400 nodes · max depth 3 Wide and shallow (big array, shallow records) → good candidate for json-flattener or json-to-csv into a table. If instead it read max depth 9, the deep nesting suggests json-path-extractor to pull specific fields rather than a flat table.
Copy an element path for bulk extraction
ExampleYou confirmed the record shape and want one field from every record. Copy the path and reuse the pattern in an extractor.
Tree: $[0].address.city ... "Berlin" Copy → $[0].address.city In json-path-extractor, $..city or $[*].address.city pulls that field from all records. The viewer gives you the concrete path; the extractor generalises it.
Errors and edge cases
Real errors and silent failures sourced from each platform's own documentation. Match the wording to the row, fix what the row says to fix.
File over the tier's size limit
Upgrade requiredFree caps uploads at 2 MB and Pro at 100 MB. A file past your tier's limit is blocked before parsing. Slice or sample the export down (a representative subset keeps the structure meaningful), or upgrade — the viewer reads the whole file into memory, so size is the real constraint.
NDJSON / one-object-per-line dump
Single document onlyBig exports are often NDJSON (.ndjson/.jsonl) — one JSON object per line. The viewer parses the whole file as ONE JSON value, so a multi-line stream fails to parse. Wrap the lines in a top-level array ([ {...}, {...} ]) first, or convert the stream to a single array before viewing.
Expand all on a very large file
Slow renderExpand all renders every node at once. On a 50,000-record file that's a lot of DOM. Prefer capping Max depth and drilling into one branch, or use search to jump to a record, rather than expanding the entire tree. The data is fine — it's the render that's heavy.
Structure deeper than Max depth
PreservedContainers past the Max depth cap show as Object(n) / Array(n) with their child count but can't be expanded. That's the intended way to keep big files light. Raise Max depth (up to 20) to drill deeper into a specific branch. No data is dropped — only child rendering is capped.
Very large integer values
By designJSON numbers are IEEE-754 doubles, so any integer beyond 2^53 is rounded on parse — common with 64-bit IDs in big datasets. The displayed value is approximate for such IDs. If precision matters, read the ID from a string field, or keep the raw text for the exact value.
Trailing comma or comment in a generated dump
Parse errorA generator that left a trailing comma, or a dump with comments, fails strict JSON.parse. Clean it first with json-format-fixer, then view. On a large file this is worth checking before you spend time uploading.
Truncated / incomplete file
Parse errorA download that was cut off mid-write is not valid JSON (unclosed brackets) and won't parse. Re-export or re-download the complete file. The viewer can't visualise a partial document — JSON.parse is all-or-nothing.
Duplicate keys across a large object
Last winsIf a big object repeats a key, JSON.parse keeps the last occurrence and the tree shows one node. In generated dumps this usually signals a bug upstream; inspect the raw text if a value looks wrong.
Memory pressure on a marginal file
Browser-boundParsing and rendering a large file uses browser memory. A file near the 100 MB Pro limit with deep nesting can strain a low-memory device. Cap Max depth to reduce the rendered node count, close other tabs, or slice the file if the tab struggles.
You wanted a flat table, not a tree
Wrong toolThe tree is for exploring structure. To turn a large array-of-objects into rows, use json-flattener for dotted-key columns or json-to-csv for a spreadsheet. Use the tree first to confirm the shape, then convert.
Frequently asked questions
How big a file can I open?
Up to 2 MB on the free tier and 100 MB on Pro. The viewer reads the whole file into your browser, so the file-size limit is the real constraint. For files past 100 MB, slice or sample the export first.
Why does my big export render slowly?
Usually because Expand all built every node. Cap Max depth to 2 or 3, drill into one branch, and use search to jump to a record instead of expanding the entire tree. The parse is fast; the heavy part is rendering tens of thousands of rows at once.
How do I just see the shape without expanding everything?
Set Max depth to 2 or 3 before viewing. A 50,000-element array then shows as a single Array(50000) node plus the first couple of levels, and the toolbar's node count and max depth tell you the size and nesting.
My large dump won't parse. What's wrong?
Common causes: it's NDJSON (one object per line), it's truncated/incomplete, or it has a trailing comma or comments. Wrap NDJSON lines in an array, re-download truncated files, and clean stray commas with json-format-fixer.
Can it handle NDJSON / JSONL exports?
The dropzone accepts those extensions, but the viewer parses the whole file as one JSON document — a multi-line stream of objects isn't a single document and fails. Wrap the lines in a top-level array first, then view.
Will large IDs lose precision?
Yes if they're numbers — JSON numbers are doubles and round past 2^53. Big datasets with 64-bit numeric IDs are affected. Read such IDs from a string field, or keep the raw text for the exact value.
How do I find one record among thousands?
Use search with an id or value. The viewer auto-expands only the matching branch and hides the rest, so you jump straight to the record without scrolling the array. Then Copy its path.
Is a sensitive dump uploaded anywhere?
No. The entire file is parsed in your browser with native JSON.parse and never leaves your machine. To share a sanitised sample, run it through json-anonymizer first.
What do the toolbar numbers mean?
Node count is the total number of nodes (keys + leaves) in the parsed tree; max depth is the deepest level reached. Together they tell you whether the file is wide-and-shallow or deeply nested, which guides your next step.
How do I turn the large file into a table or extract fields?
Confirm the shape here, then use json-flattener or json-to-csv for a table, or json-path-extractor with a path like $[*].id to pull one field from every record.
Does Download give me the original file back?
No. Download exports the tree representation (keys, types, sizes, values) as <name>.tree.json, not your original file. To reformat the original use json-prettifier or json-minifier.
Is it free for large files?
It's free up to 2 MB per file, which suits sampled exports. For multi-megabyte dumps up to 100 MB, Pro removes the size limit and adds bulk processing and saved history.
Privacy first
Conversion runs locally in your browser. No file is uploaded — only metadata counters are saved for signed-in dashboard stats.