application.json — 5 tools ● LIVE
Input · raw JSON 0 CHARS
NETWORK PAYLOAD: 0 BYTES · PROCESSING: LOCAL
Output · processed 0 CHARS
READ-ONLY · UPDATES ON EVERY KEYSTROKE
Characters in0RAW JSON
Characters out0PRETTY-PRINTED
Indent2 SPSET IN THE DECK
Errors found00 MEANS CLEAN

Developer Tools · Group 01 of 19

JSON Tools.

Paste JSON once and run it through five machines on one bench — format it with clean indentation, validate it with line-and-column error reports and fix hints, beautify it with alphabetized keys, minify it to the last byte, or walk it as a collapsible tree. One shared parser, zero round trips to a server. Nothing is uploaded, nothing is stored.

  • Tools05
  • Parsinglive
  • Uploads0
  • Backendnone
  • Costfree
In order, 01 → 05

Five machines, one parser, zero servers.

( 01 )

The one-button standard: parse the input and re-emit it with consistent indentation, key order preserved exactly as written. Choose 2-space, 4-space or tab indentation from the deck. If the input doesn't parse, the output pane refuses politely and prints the error with its line and column — you'll never ship a half-broken config again.

Example

{"name":"Apollo","crew":3,"manned":true}

{ "name": "Apollo", "crew": 3, "manned": true }

Use it for code reviewconfig filesAPI responsesdocumentation

Answers one question — does it parse? — and then over-delivers. On success you get a full census: objects, arrays, strings, numbers, booleans, nulls, total keys and maximum depth, plus the parse time in milliseconds. On failure you get the raw error message, a caret dropped under the exact offending character, and a short list of likely fixes for the usual suspects: trailing commas, single quotes, unquoted keys, comments, undefined, NaN and Infinity.

Example

{"a": 1,}

✕ INVALID — unexpected token at line 1, column 9 hint: trailing comma before a closing } or ] — remove it.

Use it for pre-deploy checksAPI debuggingdata fileslinting

The formatter's opinionated sibling. Besides choosing your indentation, you can sort keys alphabetically at every nesting level — recursively, all the way down — which makes repeated runs produce byte-identical output. That turns noisy diffs into signal: when the file changes, you know the data changed, not the key order.

Example

{"zeta":1,"alpha":{"delta":2,"beta":3}}

{ "alpha": { "beta": 3, "delta": 2 }, "zeta": 1 } — keys sorted A→Z at every level.

Use it for deterministic diffsstyle guidesgrouped keysreadable configs

Strips every byte of insignificant whitespace — newlines, indentation, the spaces after colons and commas — and collapses the document to a single line. The stat strip reports bytes in, bytes out, bytes saved and the reduction percentage, so you know exactly what the trim earned you. Data is untouched: parsing the minified output yields a value identical to the original.

Example

{ "name": "Apollo", "crew": 3 }

{"name":"Apollo","crew":3} — 34 → 25 bytes · 26% smaller.

Use it for API payloadslocalStorageembedded databandwidth budgets

Renders the parsed value as an explorable tree. Objects and arrays become collapsible branches with live child counts, every leaf shows its type badge — string, number, boolean, null — and values are color-coded at a glance. Deep branches start folded so a 10,000-line payload opens instantly; click any arrow to unfold, or flip ⊞ expand all in the deck to see everything at once.

Example

{"crew":[{"name":"Neil","walkedFirst":true}]}

⊞ object{1} → crew array[1] → object{2} → name: "Neil" · walkedFirst: true every branch foldable, every type badged.

Use it for exploring APIsnested configsdata auditslearning structure

Parsing rules · all five tools share one parser — if it parses once, it works everywhere · errors are reported with line and column, plus a caret under the offending character · the validator suggests fixes for trailing commas, single quotes, unquoted keys, comments, undefined, NaN and Infinity · beautifier key sorting applies recursively at every nesting level · minifier output is value-identical to the input — only whitespace is removed, never order · the viewer renders up to 2,500 nodes and folds branches below depth two by default · duplicate keys follow the JSON.parse rule — the last one wins · ⇄ Output → Input feeds any result straight back for another pass

The privacy promise

Paste anything. We couldn't read it even if we wanted to.

This page has no backend and no database. Every parse, every pretty-print and every byte counted just now was computed by JavaScript inside your own browser tab — your JSON never traveled a single centimeter of cable. Close the page and it's gone for good.

✕ SERVER · DATABASE · LOGS · ANALYTICS
  • Databasenull
  • Backendnone
  • JSON uploads0
  • Session logs0
Questions

Asked often, answered plainly.

( 02 )
What's the actual difference between the Formatter and the Beautifier?

The Formatter is the one-button standard: parse and re-emit with your chosen indentation, key order preserved exactly as written. The Beautifier adds a heavier hand — on top of 2, 4 or tab indentation it can sort keys alphabetically at every nesting level, which makes output deterministic and diffs meaningful. Same parser, different levels of opinion.

Why does my JSON fail validation?

Nine times out of ten it's one of the usual suspects: a trailing comma before a closing bracket, single quotes instead of double, an unquoted object key, a comment, or a JavaScript-only value like undefined, NaN or Infinity. Switch to the Validator tab — it points at the exact line and column, drops a caret under the offending character, and suggests the likely fix.

Does the minifier change my data?

No. Only insignificant whitespace is removed — newlines, indentation, and the spaces after colons and commas. Key order, values, numbers and strings are untouched, and parsing the minified output yields a value identical to parsing the original. What changes is the byte count, nothing else.

How deep can the tree viewer go?

Any depth, but rendering is capped at 2,500 nodes to keep your browser snappy — if a payload exceeds that, the tree tells you how many nodes were left out. Branches deeper than level two start folded; click any arrow to open one, or flip the expand-all toggle in the deck to unfold everything at once.

Is my JSON saved anywhere?

No. IrisTool has no backend and no database. Parsing happens inside your browser tab and the data disappears the moment you close or refresh the page. There is nothing to leak, because nothing is ever collected.