Nothing you enter is sent anywhere — 100% on-device

JSON Formatter & Validator

Pretty-print, minify and validate in one place. Your data never touches a server.

0 B uploaded — nothing you enter has been sent anywhere?

Nothing you enter and no file you choose is sent anywhere — everything runs inside this page, and no request carries your content to a server.

Other tools send what you type to a server and process it there. Even when they promise to erase it afterwards, your text sits on someone else’s machine in the meantime. Here there is no sending step at all. The more sensitive the content — passwords, contract wording, private notes — the more that difference matters. See how to verify it →

Unfold minified JSON into something readable and find exactly where it breaks

JSON from an API or a config file stops working entirely if a single comma or quote is off. This tool checks the syntax first, then either expands the JSON with 2-space indentation or squeezes it onto one line, and if something is wrong it moves the cursor to the spot where the parser gave up. Responses containing tokens never leave your browser.

A closer look

JSON is strict because machines read it, not people. Keys must be wrapped in double quotes, a comma after the last item is not allowed, and there are no comments. Syntax that works in JavaScript code, in JSON5 or in the JSONC used by some editors’ settings files is an error here. Line breaks inside a string must be written as \n rather than typed as real new lines. The tool runs the whole input through the browser’s built-in JSON parser, and if even one character breaks the rules it produces no output and reports the error instead.

When parsing succeeds, the result replaces what is in the same box. Because the output is written back from the parsed values, it can differ slightly from what you pasted: 1.0 becomes 1, 1e3 becomes 1000, an escaped character such as \u00e9 is written as é, a key that appears twice keeps only its last value, and keys that look like whole numbers, such as "1" and "2", move ahead of the other keys. On an error, the box is left untouched and the character where the problem was detected is selected.

How to use it

When it helps

Making sense of an API responseExpand a one-line response copied from your browser’s developer tools to see which fields sit how many levels deep.
Checking a config before you deployPaste an edited package.json or app settings file to catch a missing comma or an unclosed bracket before restarting the service.
Fitting JSON onto one lineMinify a multi-line object so it can go into an environment variable or a curl request body without line-break trouble.
Sharing for reviewExpand JSON buried in a compact log line before pasting it into an issue or a chat, so teammates can read the structure at once.

Common snags

The cursor landed on a character that looks fine.The parser stops where the problem becomes visible, so the real mistake is usually just before it. A missing comma selects the opening quote of the next key; a leftover trailing comma selects the closing bracket. Look to the left of the selection.
I get an error message but no line number.The line number and cursor jump only work when the browser’s error message includes a position. Chrome and Edge include it for most errors; Safari and some error types give a description only. Firefox writes its own “line 1 column 8” into the message, so read the numbers there.
The last digits of a long numeric ID changed.JavaScript numbers are exact only up to 9007199254740991 (2^53 − 1). A larger integer such as 12345678901234567890 is rounded to 12345678901234567000 when formatted or minified. Keep the original text for such IDs, and if you control the API, send them as strings.
A config file with comments or single quotes fails.Only standard JSON is accepted. JSONC and JSON5 features such as comments, single-quoted strings and trailing commas are not supported, so remove them or switch to double quotes before checking.

Tip Format and Minify overwrite the text in the box, so if you need the exact original, copy it somewhere else before pressing either button.

Notes

Is it safe for API responses and config files?

Yes. Everything happens inside your browser — the JSON you paste is never sent over the network. Data containing tokens or secrets stays on your device.

Does it show where the error is?

It depends on your browser. Where the browser's error message includes a position (Chrome, Edge and other Chromium browsers), it reports the approximate line number and moves the cursor to that spot. In Firefox, Safari and others it shows the browser's own error message as-is and does not move the cursor (Firefox's message does include the line and column).