How to open a large JSON file
- Press Open and choose your file, or drag it onto the editor. You can also use Load Sample, then Large, to try a 20 MB example.
- Wait for the status bar to show Valid JSON with the size, depth and node count.
- Collapse everything, then expand only the branch you need, or use search to jump to a key or value.
Why big JSON files freeze most viewers
Most tools parse on the main browser thread and build a DOM element for every node. A file with a million nodes means a million elements, which locks the page. This viewer parses in a Web Worker and renders only the few dozen rows that fit on screen, so scrolling, searching and expanding stay smooth whatever the file size. Loading the text into the editor still runs on the main thread, so very large files can pause the page briefly while they load (see the benchmarks page for measured numbers).
What to expect with huge files
On a desktop computer with Chrome a 25 MB file is parsed and shown as valid in roughly two to three seconds, and the page can pause for a second or two while the editor loads the text (measured numbers are on the benchmarks page). For very large inputs the editor switches to a lighter mode without minimap or language services. The tree view lists at most 250,000 rows at once; if you expand everything on a bigger file, collapse some branches or use search to narrow it down.
Your data stays on your device
Large files often contain real production exports, logs or customer data. Nothing is uploaded: the file is read by your browser and processed locally, so you can inspect sensitive dumps without sending them to a third party.
Why large JSON files are hard to work with
JSON is verbose. Every record repeats all of its key names, and pretty-printing adds indentation on top. A file of a few hundred thousand small records easily reaches tens of megabytes even though the information in it is modest, and the same data stored as CSV or in a binary format is often much smaller.
Memory matters as much as file size. When a program parses JSON it builds objects, arrays and strings in memory, and the result is usually several times larger than the text it came from. That is why a 25 MB file can make a tab use hundreds of megabytes, and why very large documents run into browser limits long before they run into disk limits.
Browser limits you can run into
In Chrome and other engines based on V8, a single string cannot be longer than about 512 million characters (2 to the power 29, minus 24). A JSON document is first read as one string, so files near that size cannot be opened in a browser at all, whatever tool you use. Memory limits per tab are lower and depend on the device, so phones and low-memory machines struggle with much smaller files than a desktop does.
Rendering is the other limit. Showing every node as a page element does not scale: a million nodes means a million elements and a frozen page. This viewer draws only the rows that fit on screen and asks a background thread for the rest, which is why expanding and scrolling stay smooth. Loading the raw text into the editor still takes time in proportion to its size; the benchmarks page has the measured numbers.
A workflow for big files
Start with the shape rather than the contents. Open the file, wait for the status bar to show the size, depth and node count, collapse everything, and look at the top-level keys. Most large files are one big array of similar records, or an object with one huge array inside it. Expand only the first item or two to learn what a record looks like.
Then search instead of scrolling. The search box matches keys and values and shows how many matches there are, and it opens the path to each one. When you need the same field from every record, switch to the Query tab and write a JSONPath expression, for example $.records[*].email, then copy all matches as a JSON array.
If you only need part of the file, cut it down first. Convert it to CSV with the converter if you want a spreadsheet, or generate a schema from it to understand its structure without reading it.
$.records[*].email
$.records[?(@.active == false)].id
$.records[0:10]When a browser is the wrong tool
For files above about a hundred megabytes, or when you need to process many files, use a command-line tool. jq can filter and reshape JSON as a stream without loading it all into memory in some modes, and tools that read newline-delimited JSON handle files of any size one line at a time. A browser viewer is best for the case this page is for: looking at a large file, understanding it and extracting pieces of it.
What is JSON?
JSON (JavaScript Object Notation) is a lightweight, text-based data format that is easy for people to read and for machines to parse. It is the de facto standard for web APIs, configuration files and data exchange between services. A JSON document is built from just six value types: objects, arrays, strings, numbers, booleans and null.
{
"name": "Ada",
"age": 36,
"admin": true,
"skills": ["math", "code"],
"address": { "city": "London" },
"manager": null
}JSON is stricter than JavaScript object literals: keys and strings must use double quotes, trailing commas are not allowed and comments are not part of the specification (RFC 8259).
Why format JSON?
APIs usually return minified JSON on a single line, which is efficient for machines but unreadable for people. Formatting (also called pretty printing or beautifying) adds consistent indentation and line breaks so that you can scan the structure, spot mistakes and review changes. Minifying does the opposite and strips whitespace to reduce size.
Frequently asked questions
What is the maximum file size?
There is no fixed limit; the practical limit is your browser memory. Files above 20 MB open on typical machines. Very large files may take a few seconds to parse.
Can I search inside a large file?
Yes. The Tree tab search matches keys and values, shows the number of matches and opens the path to each one.
Is my JSON uploaded to a server?
No. Parsing, validation, formatting, diffing and code generation all run inside your browser, using a Web Worker. Your data is never sent to any server, which makes the tool safe for API responses, configuration files and other sensitive payloads.
Does it work offline?
Yes, after the first visit. The editor and tools are stored in your browser, so you can use them without a connection. Only the TypeScript, CSS and HTML language workers used for extra highlighting in the Code tab are downloaded the first time you use them.
How large a JSON file can I open?
Files of 20 MB and more work. Parsing happens off the main thread and the tree view is virtualized, so only the rows you can see are rendered. The editor switches to a lighter mode for very large documents.
What is the difference between formatting and minifying JSON?
Formatting (pretty printing) adds line breaks and indentation so people can read the data. Minifying removes all optional whitespace to make the payload as small as possible for network transfer or storage. Both produce identical data.
Fix common JSON errors
- Unexpected token '<' in JSON at position 0
- Unexpected end of JSON input
- Expected property name or '}' in JSON
- Trailing comma in JSON
- Expected ',' or '}' after property value in JSON
- "undefined" is not valid JSON
- Bad control character in string literal in JSON
- Unexpected non-whitespace character after JSON
- Unexpected token 'N' or an invisible character in JSON
More JSON tools
- JSON Viewer Online
- JSON Validator
- JSON to TypeScript
- JSON to Go Struct
- JSON to Python (Pydantic)
- JSON Diff
- JSON Minifier
- JSON Pretty Print
- JSON to YAML
- JSON to CSV
- JSON to XML
- JSON Tree Viewer
- JSON File Viewer
- JSON Sorter
- JSON to Zod
- JSON to Rust
- JSON to Java
- JSON Schema Validator
- JSON to JSON Schema
- JSONPath Tester
- JSON Path Finder