Help shape the future of JSON Workbench! We'd love to hear how you use it.
01

What you can do on this page

This page is a complete workbench for JSON. Paste a payload from an API, open a .json file from your computer, or start typing — everything runs locally in your browser, so your data never leaves your device. Here is what the tools on this page actually do:

Format & validate
Turn single-line or messy JSON into indented, readable JSON. While you type, the validator checks every character and pinpoints the first error — for example Unexpected token } at position 42 — instead of just saying “invalid”.
Minify
Strip every unnecessary space, newline and indent to get the smallest valid payload — typically 30–60% smaller — before you ship it to production or paste it into a config.
Escape / Unescape
Convert JSON into an escaped string you can safely embed inside JavaScript code or another JSON value — and convert it back when you need to read it again.
Anonymize
Mask emails, names, tokens, phone numbers and other personal data before you paste a payload into a bug report, Slack thread or ticket. You choose which keys get masked and with what.
Inspect
Walk deep structures in Tree View with collapsible nodes, or turn an array of objects into a sortable Table View when rows matter more than structure.
Upload & download
Open .json or plain-text files directly, edit them, and save the result back to your machine as a .json file.
02

How it works: from raw JSON to clean output

The workflow is the same whether your JSON comes from an API response, a log file, or a NoSQL export. Four steps, no configuration:

  1. 1
    Get JSON into the editor.Type it, paste it with Ctrl+V or the Paste button, or click Upload to open a file from your computer.
  2. 2
    The validator runs as you type.Valid JSON enables the action buttons. Invalid JSON keeps them disabled and the editor underlines the exact position of the first problem — a missing comma, an unquoted key, a stray bracket.
  3. 3
    Pick an action.Format, Minify, Escape, Unescape or Anonymize. Parsing and formatting run in a background Web Worker, so the page stays responsive even on multi-megabyte payloads.
  4. 4
    Take the result with you.Copy puts it back on your clipboard; Download saves it as a .json file.
Input — a typical single-line API response
{"id":7,"user":{"name":"Aisha","roles":["admin","editor"],"active":true}}
After pressing Format
{
  "id": 7,
  "user": {
    "name": "Aisha",
    "roles": [
      "admin",
      "editor"
    ],
    "active": true
  }
}

Formatting only changes whitespace. Keys, values and their order stay exactly the same — the output is guaranteed to parse to the identical data.

03

Working with large JSON files

The formatter was built for big payloads — API dumps, log exports, dataset extracts. Heavy work is dispatched to a background worker thread, so typing and scrolling never freeze while the file is being processed:

  1. 1
    Upload instead of pasting.The Upload button accepts .json, application/json and plain-text files. Pasting a 20 MB string through the clipboard works, but opening the file directly is faster and lossless.
  2. 2
    Switch to Tree View.Collapsible nodes make structures with thousands of keys navigable — expand only the branch you care about instead of scrolling through a wall of text.
  3. 3
    Search to jump, don't scroll.Press Ctrl+F (Cmd+F on Mac) to find a key or value anywhere in the payload. The advanced search accepts regular expressions such as "id"\s*:\s*\d+.
  4. 4
    Minify before you download.If file size matters — uploads, storage limits, diffs — minified JSON is typically 30–60% smaller than the formatted version with zero data loss.
  5. 5
    Anonymize before you share.Open the shield's settings (gear icon), pick which keys should be masked and with which replacement text, then run Anonymize. Your masks are remembered on your machine for the next session.
Honest limits: there is no hard file-size cap, but a browser tab can only use so much memory. Payloads of tens of megabytes are comfortable on a desktop; phones may struggle beyond ~10 MB. If the tab slows down, close other tabs or split the file — the tool never truncates or silently alters your data.
04

Every button and control, explained

The toolbar adapts to the active mode — here is what each control on this page does, left to right.

View modes (left of the toolbar)

Tree View
A collapsible hierarchy of your data. Click any node to fold or unfold a branch — the fastest way to understand an unfamiliar payload's shape.
Code View
The default: a full editor with JSON syntax highlighting, line numbers and inline error markers under exactly the character that broke the syntax.
Table View
Renders arrays of objects as a table — one row per element, one column per key. Ideal for log entries, product lists or any repeated records.

Data actions

Format
Pretty-prints with 2-space indentation. It stays disabled until the content is valid JSON — that's deliberate, so you can trust that anything Format produces is parseable.
Minify
Removes all whitespace that isn't part of a string value, producing the smallest valid representation of the same data.
Escape
Serializes your JSON into an escaped string — quotes become \", newlines become \n — ready to embed inside another string literal. Example: {"a":1} becomes "{\"a\":1}".
Unescape
The reverse: takes an escaped JSON string — from a log line, a wrapped API field, a config value — and turns it back into editable, formatted JSON. It also validates the result, so corrupted escapes are caught instead of silently kept.
Anonymize (shield)
Scans your keys, suggests likely personal data (emails, tokens, names, phone numbers) and replaces the chosen values with your mask text. Use it before pasting payloads into issues, chats or documentation.
Anonymizer settings (gear)
Opens the mask configuration: search your keys, add custom ones, set the replacement text and reorder priorities. Settings are stored locally and apply instantly.

Clipboard & files

Copy
Copies the current editor content. Inside the editor, Ctrl+C works as usual — the button is there for Tree and Table views where text selection is awkward.
Paste
Inserts your clipboard content into the editor, replacing the selection. Useful in Tree/Table view where Ctrl+V has no target.
Upload
Opens a file picker for .json and plain-text files and loads the content into the editor.
Download
Saves the current editor content as a .json file — the formatted version you see, not the original input.

Keyboard shortcuts

Ctrl+F / Cmd+F
Open search across the whole payload. Type plain text or a regular expression to jump between matches.
Alt+Z
Toggle word wrap for long lines — useful when values contain long URLs or serialized strings.
Ctrl+Z
Undo the last edit or action. History survives mode switches.
Ctrl+Shift+Z
Re-apply what you undid.
05

Frequently asked questions

Is my JSON uploaded to a server?

No. Parsing, formatting, escaping and anonymizing all happen in your browser using JavaScript and Web Workers. There is no backend involved — after the page loads, most features even keep working offline.

Why are the Format and Minify buttons disabled?

The editor content is not valid JSON yet. This is intentional: the buttons only enable once the validator accepts your input, so every result they produce is guaranteed to be parseable. Switch to Code View and look for the underlined character — it's usually a missing comma, an unquoted key, or a trailing comma.

How do I fix “Unexpected token” errors?

The error names the offending character and its position. The most common causes: single quotes instead of double quotes ('name' instead of "name"), trailing commas after the last element, unquoted object keys, // comments (standard JSON has none), and “smart quotes” copied from documentation or Word.

Does formatting change my data?

Never. Format and Minify only add or remove whitespace. Keys, values and key order are preserved exactly — the formatted and minified versions parse to the identical data.

What is the maximum file size?

There is no artificial cap — the limit is your browser tab's memory. Files of tens of megabytes process comfortably on a desktop; mobile browsers may struggle beyond roughly 10 MB. Processing happens in a background worker, so the page stays interactive while a large file is being handled.

What is the difference between Escape and Minify?

Minify shrinks JSON but the result is still JSON. Escape converts your JSON into a string whose contents are JSON — wrapped in quotes with inner quotes escaped — so it can be embedded inside another string, variable or document without breaking syntax.

How do I share a payload without leaking personal data?

Use Anonymize. Click the gear icon, pick which keys contain sensitive values (the tool suggests likely candidates such as emails and tokens), set your replacement text, then run it. You get a share-safe copy to paste into bug reports or chats — the original stays in your editor.

Can it format JSON with comments (JSONC)?

Not currently. The validator follows the strict JSON standard (RFC 8259), so // and /* */ comments and trailing commas are rejected. Remove comments first — most editors can do this with a find-and-replace.

Is it free? Do I need an account?

It's completely free with no account, no watermark and no usage limits. The page is financed by unobtrusive ads, which is also why nothing about your data is collected — the tools run entirely on your device.

Once your JSON is clean: compare two JSON files, folders or API responses to see exactly what changed, decode Base64 strings, convert CSV to JSON when tabular data is involved, or inspect a JWT token to read its payload and claims.