JSONQuiet

Format and validate JSON. No clutter.

JSON Quiet is a free JSON formatter and validator that runs entirely in your browser. Pretty-print minified API responses, check RFC 8259 syntax, and copy a clean payload — without creating an account or uploading the editor contents to our servers.

The box below is the tool. The rest of this page explains how formatting differs from validation, why a JavaScript object literal is not JSON, and how to fix the errors that report a line and column. If you only need to clean a file today, paste it and click Format.

Examples, RFC 8259, and how to fix invalid JSON ↓

JSON

Free online JSON formatter & validator

JSON Quiet is a free JSON formatter and JSON validator for people who work with API payloads, config files, and test fixtures. It pretty-prints minified JSON, lets you choose indentation, and checks syntax against RFC 8259 — in the browser, with no account. Formatting and validation do not upload the editor contents to JSON Quiet servers. Maintained by Bruno J F Costa.

This page is both the tool and a short reference. Use the editor above when you already have a payload. Use the examples below when you need to see why a paste failed, or when you are teaching someone the difference between JavaScript and JSON. Longer walkthroughs live in the Guides section.

How to format JSON

Paste JSON, a public .json URL, or open a local file. Under Options pick 2, 3, or 4 spaces, tab, or compact. Click Format to pretty-print. Use Validate for syntax errors with line and column when available, then Copy. Expand the editor for long documents. Format fails until the text is valid JSON — that is expected.

Private by design

Formatting and validation run in JavaScript on your device. Sensitive payloads stay local instead of being posted to a remote beautify API. Ads and hosting logs are separate from the editor; they do not receive the JSON you type. See the Privacy Policy. Redact tokens before you screenshot or share.

A worked example: invalid vs valid

The fragment below looks like JSON. It is a JavaScript object: unquoted key, single-quoted string, trailing comma. Python, Go, Java, and JSON.parse all reject it. Paste it into the editor and click Validate — you should see a failure at the first problem. Then replace it with the second snippet and Format.

Invalid (JavaScript-style — will not parse)

{
  city: 'São Paulo',
  ok: true,
}

Valid RFC 8259 JSON

{
  "city": "São Paulo",
  "ok": true
}

Double quotes on keys and strings. No comma after the last property. Accents such as ã are legal in UTF-8 JSON; you do not need to strip them. Compact output of the same object is {"city":"São Paulo","ok":true} — same data, less whitespace.

How to repair a failing paste

Click Validate with RFC 8259 selected. Read the status line. Jump to the reported line and column. Fix only the first error: extra comma, missing quote, or a comment. Validate again. Parsers stop at the first problem, so later issues appear only after earlier ones are gone. When it passes, Format for reading, then Copy. Relaxed mode can ignore some trailing commas while you clean up; switch back to strict before you ship.

RFC 8259 versus a JavaScript object

JSON is a data interchange format. JavaScript is a programming language. JSON allows objects, arrays, strings, numbers, true, false, and null. It does not allow comments, unquoted keys, single-quoted strings, undefined, NaN, or Infinity. JSON.stringify of a live JS value often produces legal JSON; copying the source code of that object usually does not. If a teammate says “it works in the console,” ask them to stringify, not to paste the literal.

UTF-8, accents, and Brazilian payloads

“São Paulo”, “açúcar”, and emoji are valid in JSON strings. A formatter that “fixes” names by removing accents is destroying data. If Validate succeeds but letters look wrong (São), the file was already mis-decoded before you pasted — check Content-Type and file encoding, not the pretty-printer. Literal UTF-8 is easier to review in git than \\u00e3 escapes; both parse to the same string.

Common JSON errors

Most invalid JSON comes from JavaScript-style objects: trailing commas, single quotes, unquoted keys, // comments, NaN, and undefined. RFC 8259 rejects those. Numbers such as 01 or a hanging decimal 3. can also fail. Two objects back-to-back ({}{}) are not one JSON document — that pattern is concatenated JSON or JSON Lines, not a single value. Paste one document (or one log line), Validate, fix the first reported line, repeat.

Choosing indentation

Indentation does not change values — only how the text prints. Two spaces keep nested API responses compact; four spaces add hierarchy for deep objects; tabs match some editors. Use compact when a consumer wants one line or a smaller paste. Do not re-indent a committed fixture in the same commit as a data change: git will show every line as modified. Agree on one style per repository.

Typical use cases

Inspect REST and GraphQL bodies, clean minified logs, review package or CI config, and check fixtures before tests. Format to read structure. Validate when the document must parse in production. Copy when you paste into an editor or ticket. For newline-delimited logs, validate one line at a time. Syntax checks are not schema checks: valid JSON can still be the wrong shape for your API.

What this tool is not

JSON Quiet is not a cloud store, a schema validator, a jq replacement, or a vault for secrets. It will not apply OpenAPI types, will not query nested keys for you, and will not make a token safe to share. It answers two questions: can this text be pretty-printed, and is it legal JSON under the mode you selected. For step-by-step articles, open the guides.

Guides on this site

The Guides hub covers formatting, RFC 8259 validation, common errors, JSON versus JavaScript, Unicode, escape sequences, nested keys, minify versus pretty-print, JSON Lines, JSON Schema versus syntax, and what not to paste. Those pages are written to stand on their own so you can send a teammate a single URL instead of a screenshot of the editor.

Open the JSON guides →

Frequently asked questions

Is this JSON formatter free?

Yes. JSON Quiet is free to use. Optional PayPal or PIX donations help keep the site online. Ads, when shown, are not a requirement to use Format or Validate.

Does JSON Quiet upload my JSON?

No. Formatting and validation happen in your browser. Nothing is sent to our servers. Loading a URL only fetches that public resource at your request.

What JSON standard is supported?

Validation follows RFC 8259. A relaxed mode can help with trailing commas while you clean a payload. Ship only what passes strict mode unless every consumer agrees on the same extensions.

Can I open a local JSON file?

Yes. Use Open, drag and drop a file onto the editor, or paste raw text. Then format, validate, and copy the result.

What causes most JSON parse errors?

Trailing commas, single quotes, unquoted keys, and comments copied from JavaScript. Validate to see the line and column, fix the first error, and try again.

Should I use 2 spaces, 4 spaces, or compact JSON?

Use 2 or 4 spaces for readable configs and API debugging; pick whatever your team already uses. Choose compact when you need a smaller payload or a single-line paste, then pretty-print again when reading.

Can I format JSON from an API or config file?

Yes. Paste a response body, open a local .json file, or load a public JSON URL. Format to read structure, Validate before you commit or deploy, then Copy the result.

Does pretty-print change my data?

No. Indentation only changes whitespace. Numbers, strings, and key names stay the same. If a value looks different after format, the original text was not valid JSON or you edited it in the box.

Why did Validate pass but my API still rejected the body?

Syntax is not a schema. The text can be legal JSON and still have the wrong types or missing fields for your contract. Use your OpenAPI or JSON Schema tests after it parses here.

Keep Quiet online

If JSON Quiet saved you time, a small tip helps cover hosting.

Donate securely with PayPal.

Pay with PIX using the random key below.

Donation to Bruno J F Costa

Expanded JSON

Esc to close · changes sync with the main box