JSON Viewer
Open a large JSON file, search every key and value, filter with JSONPath, and copy any branch — without uploading a byte.
Drop a .json, .jsonl, .ndjson file here, or paste below.
How local processing worksOpen a file, drop one here, or paste JSON in the Edit tab.
Document profile
Load a document to see node counts, depth, key cardinality, and the largest array.
Selected node
Select a row to see its full path, child counts, and copy just that branch.
JSONPath filter
Supports dot and bracket notation plus the recursive descent operator, for example $..email.
Export
How to open a large JSON file
Drop a .json file onto the panel or use Open file. Nothing is uploaded: the file is read into this tab, parsed once, and indexed into a flat node list. The tree then paints only the rows inside the viewport, so scrolling a document with hundreds of thousands of nodes stays smooth. Use Expand to level rather than Expand all on anything large, and use search or the JSONPath filter to jump straight to what you need.
What actually breaks at what file size
The limits people hit are memory limits, not parser limits, and they arrive in a predictable order. Below about 5MB anything works, including a plain text editor. Between 5 and 50MB, syntax-highlighting editors start to stall because they build a token model of every character; a viewer that indexes structure instead stays responsive. Between 50 and 300MB the constraint is that the file must exist in memory twice — once as the source string, once as the parsed object graph — so budget roughly three times the file size in RAM. Above that, a browser tab is the wrong tool: JavaScript strings have a hard maximum length (about 512MB on 64-bit V8), and JSON.parse cannot stream, so the only real answer is a streaming parser such as jq, ijson, or a Rust or Go tool that reads the file incrementally. This viewer will tell you when it cannot proceed rather than freezing the tab.
| Input | Output | Note |
|---|---|---|
| Under 5 MB | Anything works | Editor, formatter, or viewer. |
| 5–50 MB | Editors stall | Highlighting cost scales with characters. |
| 50–300 MB | Viewer territory | Needs roughly 3× the file size in RAM. |
| Over ~500 MB | Use a streaming parser | jq, ijson, or a native tool. JSON.parse cannot stream. |
Finding one value in a million
Three tools, for three different questions. Search scans every key and every primitive value and can be scoped to keys only or values only — scoping to keys is what you want when you are looking for where a field is used, and scoping to values is what you want when you know the ID and need its location. Enter jumps to the next match and Shift+Enter to the previous one, expanding whatever ancestors are needed to reveal it. The JSONPath filter answers structural questions instead: $..email collects every email anywhere in the document, and $.items[0].sku addresses one exact position. Selecting any node gives you its full path, so you can copy the expression rather than reconstruct it by counting brackets.
Why the error message matters more than the formatter
When a document fails to parse, the browser's own message is frequently useless — modern V8 reports a snippet with no position at all for several classes of error. This viewer walks the JSON grammar itself to find the first offending character, then reports the line, the column, and the source line, along with a plain description of what was expected. It names the five faults that account for nearly all hand-edited failures: a trailing comma before a closing brace or bracket, single quotes instead of double, an unquoted property name, a comment (JSON has none — JSONC and JSON5 are different formats), and a raw newline or tab inside a string that should have been escaped.
Viewer, formatter, or editor?
A formatter re-indents text and hands it back; that is all you need for a 200-line config. A viewer builds a navigable model, which is what you need when the document is too large to read linearly or too deep to hold in your head. An editor does both plus mutation. This page is a viewer with an edit mode: switch to Edit to change the source, reformat or minify it, and rebuild the tree. For structural edits across many nodes, the flatten, merge, and JSONPath tools are usually faster than hand-editing, and for validating shape rather than syntax, generate a JSON Schema and check against that.
Frequently Asked Questions
How large a JSON file can this open?
Far larger than an editor will manage, but the ceiling is your browser tab's memory rather than a fixed number. The file has to exist as a string and as a parsed object at the same time, so budget roughly three times the file size in RAM — a few hundred megabytes is realistic on a desktop. Beyond about half a gigabyte, JavaScript's own maximum string length becomes the wall and a streaming parser such as jq or ijson is the right tool.
Why is it fast on documents that freeze other viewers?
The document is indexed once into a flat array of nodes, and only the rows currently inside the viewport are rendered. A collapsed subtree is skipped in a single jump rather than by walking every node inside it, so both scrolling and expanding stay proportional to what is on screen instead of to the size of the file.
Can I search inside values as well as keys?
Yes, and you can scope it. Search all, keys only, or values only, with optional case sensitivity. Matches are counted and highlighted; Enter moves to the next one and Shift+Enter to the previous one, expanding whatever is needed to reveal it. Array indexes are deliberately not treated as keys, so searching for "1" does not return every second array element.
What JSONPath syntax is supported?
Dot notation ($.user.email), bracket notation ($["odd key"]), array indexes ($.items[0]), and the recursive descent operator ($..email) which collects every match at any depth. Filter expressions and slices are not supported — for those, jq is a better fit.
Can I edit the JSON here?
Yes. Switch to the Edit tab to change the source, reformat or minify it, and rebuild the tree from the result. Edits stay in this tab; nothing is saved anywhere and nothing is sent to a server.
What happens when the file is not valid JSON?
You get the line, the column, the offending source line, and a description of what the parser expected — produced by walking the grammar directly, because the browser's own message frequently omits the position entirely. If the file is nearly-JSON with trailing commas or single quotes, the JSON fixer will repair it and list every change.
Is my data uploaded anywhere?
No. The conversion runs in JavaScript inside the page you already downloaded. There is no upload endpoint on this site, nothing is written into the URL, and closing the tab discards everything. Analytics record the tool name, whether the run succeeded, and a coarse size bucket — never the content.
Related Tools
JSON Formatter & Beautifier
Format, beautify, and validate JSON in one pass, with the exact location of any syntax error.
JSON Validator
Check whether JSON is valid, find the syntax error, and see what the document contains.
JSONPath Tester
Test JSONPath expressions against your own JSON and see what they select.