Paste JSON to strip every space and line break outside strings. The JSON is validated first, and numbers are copied character for character, so 64-bit IDs survive.
Open a file: (or drop it on this box)
Most browser-based JSON tools format by calling JSON.parse and then JSON.stringify. That reads every number as a 64-bit float, so integers above 253 (9,007,199,254,740,992) change: in Node 24 and Chrome, JSON.parse turns 12345678901234567890 into 12345678901234567000 and 9007199254740993 into 9007199254740992. Database IDs, Twitter/X and Discord snowflake IDs and order numbers are often that long. This formatter never converts numbers: it copies each one exactly as written and tells you how many integers are past that limit, so you know to read them as strings or BigInt in your own code.
Strict JSON (RFC 8259) is what JSON.parse, Python's json and every API expects. Hand-edited JSON breaks it in the same few ways, and each error names the line and column, shows the line with a caret, and says what to write instead:
//, /* */, #), common in JSONC files such as VS Code and tsconfig settings.True, False and None from print(dict) instead of json.dumps.\n and \t.{ or [ that never closes was opened.Fix it repairs all of those except the last two, plus NaN, Infinity and undefined (replaced with null), hex numbers and missing commas between items, and then lists every kind of change it made. It refuses to guess on numbers with leading zeros like 01234: whether that should be the number 1234 or the string "01234" (a zip code) is your call.
JSON allows the same key twice in one object, but parsers keep only one of the values (JSON.parse and Python keep the last) without any warning. That is how a config override or a merge mistake goes unnoticed. The status line lists duplicate keys with their line numbers even when the JSON is otherwise valid.
Need the data as a document, like a report or an invoice built from an API response? The Shotmint API renders HTML into a PDF or PNG in real Chromium: POST https://shotmint.creasework.com/v1/pdf with {"html": "…"} returns a PDF and /v1/screenshot returns a PNG of any page or HTML (1 credit each; 25 free renders a month, then €5 for 2,000 that never expire). Scripts, AI agents and Make or Zapier can get a key with a bare POST https://shotmint.creasework.com/v1/keys/free (no body, JSON reply); the request bodies are described in openapi.json.
Get 25 free renders a month API docs
Is my JSON uploaded? No. Validation and formatting run in your browser; this page sends nothing to a server, so it is safe for API responses and config files with secrets.
Does sorting keys change the data? No, only the order of keys inside each object; arrays keep their order. Sorted output is handy for diffing two JSON files.
Related tools: JSON formatter, JSON validator, JSON to YAML, JSON to CSV, JSON to Excel, JSON to XML.
Minify XML · JSON to CSV · CSV to JSON · JSON to XML · XML to JSON · YAML to JSON · JSON to YAML · JSON formatter · JSON Validator · JSON to Excel Converter · JSON Diff · Excel to JSON Converter · all free tools