JSON Formatter
JSON parser.Overview
Format, validate, minify, and lint JSON in your browser
Pretty-print messy JSON with clean, consistent indentation. Paste your JSON, pick an indent style, and copy the formatted result.
Guide
How to use
- 1 Paste your JSON
Type, paste, or use the Paste button to pull JSON from your clipboard. The Sample button loads a small example to try.
- 2 Choose an action
Switch between Format, Validate, Minify, and Lint using the tabs. The same input is reused — no need to paste again.
- 3 Read the result
Formatted and minified output appears in the result pane; validation shows a clear verdict; lint lists every issue with its location.
- 4 Copy or download
Use Copy to send the result to your clipboard. On the Format and Minify tabs you can also Download the result as a .json file.
Reference
What JSON Lint checks
| Issue | What it means |
|---|---|
| Duplicate key | Two properties in one object share a key — parsers keep only one value. |
| Trailing comma | A comma before a closing bracket or brace — not allowed in strict JSON. |
| Comment | // or /* */ comments — valid in JSON5/JSONC but rejected by JSON. |
| Single-quoted string | Strings or keys in single quotes — JSON requires double quotes. |
| Unquoted key | An object key without quotes — JSON requires every key to be double-quoted. |
| Byte-order mark | A hidden BOM character at the start of the input that can confuse parsers. |
Pitfalls
Common JSON mistakes
-
Trailing commas
A comma after the last item in an array or object is fine in JavaScript but invalid in JSON. Remove the comma before the closing bracket or brace.
-
Single quotes
JSON requires double quotes for every string and key. Single quotes are a JavaScript habit — the Lint tab flags each one so you can swap them.
-
Unquoted keys
JavaScript object literals allow bare keys like {name: "x"}, but JSON needs {"name": "x"}. Every key must be wrapped in double quotes.
-
Comments
JSON has no comment syntax. // and /* */ comments are valid in JSON5 and JSONC but a standard parser will reject them — strip them before parsing.