JSON Formatter

Pretty-print JSON with configurable indentation, or minify it to a single compact line. Values are preserved exactly; nothing is silently changed.

Private by architecture: All processing is 100% client-side memory. Your data never leaves this browser tab.
JSON input
0 lines · 0 charsJSON
Formatted output
Ctrl/Cmd+Shift+C
0 charsJSON

Example

Compact input:

{"name":"Dimas","active":true,"tags":["json","api"]}

pretty-printed with 2-space indent:

{
  "name": "Dimas",
  "active": true,
  "tags": [
    "json",
    "api"
  ]
}

FAQ

Does formatting change my data?
No. Values are preserved exactly through JSON.parse and JSON.stringify. Only whitespace and, optionally, key order change.
What does "sort keys" do?
Recursively sorts object keys alphabetically at every nesting level. Off by default, since key order can be meaningful to some consumers.
Does this detect duplicate keys?
No. Per JSON semantics, JSON.parse silently keeps only the last of any duplicate key before this tool ever sees the data.