CoreJSON

Large JSON Viewer

This large JSON viewer opens 10 MB and even multi-tens-of-MB files in your browser. Parsing runs on a background Web Worker and the tree uses session-based windowed rendering, keeping only rows near the viewport in the DOM and memory, so hundreds of thousands or millions of nodes scroll without lag. Text over 5 MB automatically switches to a read-only chunked view. It supports opening and dragging in local files, key/value search and jump, collapse and expand, JSONPath breadcrumbs and node copying — and files never reach a server.

Open in the workbench Runs locally · nothing is uploaded

How to use it

  1. 1

    Open a large file

    Click "Open file" to pick a local .json, or drag the file onto the workspace. Content is read locally through the browser File API and never uploaded. You can also paste large JSON text directly.

  2. 2

    Browse the structure in the tree

    The left tree shows nodes by container hierarchy. Click arrows to collapse or expand, or use "Expand all / Collapse all". However big the file, scrolling fetches and renders only rows near the viewport.

  3. 3

    Search and jump to nodes

    Type a key or value fragment in the search box (debounced, up to 500 hits). Use Up / Down to step through matches with the substring highlighted, and the ancestor path of each hit expands automatically.

  4. 4

    Read paths, copy and edit

    Click any node to see its JSONPath in the breadcrumb (for example $.items[12].id) and walk up the levels. Hover to copy a value or path, and edit primitive values inline with live sync back to the text pane.

Key features

Web Worker background parsing

A full JSON.parse runs on a background thread, so typing and scrolling stay responsive during parsing and the page never becomes unresponsive.

Tree session with windowed rendering

The Worker holds a single tree session and returns row pages (100 rows each) on demand, recycling off-screen pages. Main-thread memory and DOM nodes are independent of file size.

Automatic chunked view over 5 MB

When text exceeds 5 MB the editor switches to a read-only virtual row view: fixed row height, virtual scrolling, line numbers, JSON syntax colouring and error line location. Extremely long single lines are truncated with a prompt to format first.

Local files and drag-and-drop

Supports both a file picker and full-page drag-and-drop, showing file name and size in KB / MB — ideal for log exports and database dumps you cannot paste.

Search, breadcrumbs, inline editing

Key/value search with automatic ancestor expansion and up/down navigation; clickable path breadcrumbs; primitive nodes can be edited directly, with structured cloning and debouncing handled for you.

Files are never uploaded

Local files are read and parsed in memory, with no request carrying file content.

Common errors & troubleshooting

  • ! An unformatted single-line huge JSON (millions of characters on one line) is not meant for direct reading: format it first, then browse it in the tree or chunked view.
  • ! "Expand all" on a million-node file can still produce a huge number of rows. Search for the target node first (its ancestors expand automatically) — far faster than unfolding everything.
  • ! The tree window keeps only pages near the viewport, so during fast scrolling a few rows may briefly appear blank. This is normal on-demand fetching and fills in once you stop.
  • ! When data contains integers beyond 2^53-1 (such as snowflake IDs), enable big-integer mode in the formatter to avoid losing the last digits in a normal parse.

Frequently asked questions

What is the largest JSON file supported?

There is no artificial size limit; the practical ceiling is device memory. 10 MB files open quickly and files in the tens of MB usually browse smoothly. The key is that parsing runs in a Web Worker, the tree renders only visible rows, and the text view switches to read-only chunked mode above 5 MB, so file size does not translate directly into DOM nodes. For unformatted single-line giants, format first.

Will opening a large file freeze the browser?

No. JSON parsing runs on a separate Web Worker thread and does not occupy the main thread. The tree uses a session-based windowing protocol, so the main thread holds only the pages near the current scroll position and recycles off-screen pages. A "Parsing" status is shown and you can still scroll and interact.

Is my JSON file uploaded, and is it safe?

It is not uploaded. The file is read locally through the browser File API (file.text()), and parsing, search and formatting all happen on your machine with no network request carrying file content — suitable for API responses, logs and data containing personal information.

Why can I not edit directly in the editor above 5 MB?

The CodeMirror editor incrementally syntax-parses the whole document, which drops frames on very large documents (especially minified single-line JSON). Above 5 MB it switches to a read-only chunked view to keep browsing smooth. To make changes, use inline editing on tree nodes, or shrink / format the document first and return to edit mode.

Related tools