Open JSON
Use a detected raw JSON page or enter a supported JSON URL in the viewer.
Chrome JSON viewer
Open 100MB+ JSON in a dedicated Chrome viewer—stream bytes, parse in Worker-backed Rust/WASM, and keep browsing while data loads.
Now available on the Chrome Web Store.
The viewer
Open and explore JSON from anywhere—URLs, APIs, exports, or local files—in a dedicated extension workbench, not an in-tab page rewrite. Parsing runs in Worker/WASM off the UI thread, while a virtualized tree with fixed 24px rows remains responsive as data streams in. Browse, keyword-filter, or switch to field view during loading, run JSONPath after parse, and use phase timings to distinguish network download time from Worker parse time.
For 100MB+ JSON files, Row Window mode sends only visible rows to the tree while keeping the full dataset inside Worker/WASM memory. Large files support JSONPath Lite structural queries without rebuilding a full JSON object graph. All processing happens locally in your browser. No uploads, no analytics, and no data ever leaves your device.
$.statuses[5].user).
$.statuses[*].user.id).
How it works
Install OmniJSON from the Chrome Web Store, then open raw JSON in a dedicated Chrome extension viewer. The original JSON tab stays unchanged except for an optional entry point to open the viewer.
Use a detected raw JSON page or enter a supported JSON URL in the viewer.
Expand only the branches you need while the source continues streaming.
Use keyword search or field view immediately, then JSONPath after parse; large files use JSONPath Lite. Jump between matches with Prev/Next and a live match count.
Copy paths, scalar values, or subtree JSON from the selected row.
Byte-chunk streaming from HTTP/HTTPS fetch or a document fallback when re-fetch is unavailable.
Parse and JSONPath in Worker/WASM; keyword search runs async and stays off the UI thread.
24px rows with only visible nodes painted; subtree totals speed up collapse and expand.
Case-insensitive substring match on keys and scalar values while parsing continues; field view accepts comma-separated exact keys; Prev/Next match navigation with live count after filtering.
Full $ queries for regular documents; JSONPath Lite structural paths for large files.
Copy JSONPath, JS, jq, or key paths, plus scalar values or subtree JSON from the selection.
oj in Chrome's address bar, or use the viewer URL field, to search recent JSON URLs opened by OmniJSON.file:// JSON, enable "Allow access to file URLs" in Chrome extension settings.
Plain text filter input runs keyword mode: case-insensitive substring matching on keys
and scalar values. Fields mode accepts comma-separated exact key names and keeps
necessary parent paths plus matched field subtrees. Queries beginning with $ run JSONPath after parsing
completes; large documents use JSONPath Lite.
$ to switch from keyword mode to structured matching.$.items[*].id, $.items[0], and $..id.Common JSONPath examples:
$.data.users[0].id selects one nested value by object key and array index.$.data.users[*].name selects the name field from every item in an array.$..id finds every id key anywhere in the document.Paste a URL into the viewer. The header shows total time to Ready; the status panel breaks out network read vs Worker parse (desktop Chrome reference runs):
2023-04-12_oasst_alpaca_ready.trees.json (HF fetch) —
86.7 MB, 223k nodes, 10.1 s total, 3.06 s parse
OmniJSON streams source bytes into a Worker and Rust/WASM parser. From roughly 50 MB or 500k nodes, it keeps full node data in Worker/WASM and sends compact row windows to the viewer instead of transferring the entire node table to React. Large documents can still use keyword filter and JSONPath Lite without a full JS-side object graph.
Privacy
Last updated: May 10, 2026
OmniJSON processes JSON locally in the browser extension runtime. It may fetch the same source URL you choose to view so it can stream bytes into the parser, but parsed JSON, scalar indexes, filter results, copied values, and usage data are not sent to OmniJSON servers.
OmniJSON may process JSON document contents from pages you choose to open, including API responses, local files, logs, configuration files, or other visible JSON text.
Data is used only for streaming parse, tree rendering, keyword filtering, JSONPath queries, path and value copy tools, value previews, and parse error previews.
OmniJSON does not collect, sell, transmit, or share user data. It does not include analytics, advertising SDKs, telemetry endpoints, or external tracking services.
When you open a raw JSON document, OmniJSON may fetch that same URL from the extension context to stream bytes to the Worker and WASM parser. It does not send contents to OmniJSON-operated servers.
For file:// documents, Chrome requires "Allow access to file URLs" to be
enabled for the extension. Processing remains local in the browser.
Browser credentials may be included only for the same source request. Parsed documents are not persisted to extension storage. OmniJSON stores only recent JSON URLs for address bar and viewer URL suggestions, and clipboard writes happen only when you click a copy button.