Is the JSON formatter free?
Yes. This JSON formatter is completely free to use with no account or signup required.
Does it upload my JSON?
No. Formatting happens entirely in your browser on your own device, so your JSON is never sent to a server and stays private.
Does it also validate the JSON?
Yes. Invalid JSON fails with a clear parse error instead of producing broken output, so it validates and beautifies in one step.
Can I copy or download the formatted result?
Yes. After formatting, you can copy the output to your clipboard or download it as a file to use in docs, tickets, and reviews.
Does it work on mobile?
Yes. The formatter runs in any modern browser, including mobile, since all processing happens locally on your device.
Can I change the indentation?
No. The output is always 2-space indented, which is what most JavaScript, TypeScript and web tooling expects. If you need tabs or 4 spaces, reindent in your editor, which will do it faster than a round trip through a web page anyway.
Does formatting change my data?
It should not, but there are two ways it can. Duplicate keys collapse to the last one, because that is what the parser does. And integers larger than 2^53 lose precision, because every JSON number becomes a JavaScript double. If your payload has long numeric IDs, check them, or ask the API to send them as strings.
Why did my key order change?
Because some of your keys look like integers. JavaScript objects order integer-like keys first, in ascending numeric order, regardless of insertion order, and the parser builds a real object. Keys that are not integer-like keep their original order. If key order matters to you, use an array of pairs rather than an object.
Why does it reject my JSON with comments?
Because JSON has no comments. What you have is JSONC or JSON5, formats that add comments and trailing commas for human-edited config files. They need a parser that supports them, and the browser's built-in one does not.
What is the difference between this and the JSON Validator?
Very little, in practice. Both parse the document and print it back with indentation, so a formatter that succeeds has also validated. The two pages exist because people arrive with different intentions: one wants to know whether it is broken, the other wants it readable.
Is my JSON sent anywhere?
No. Both the parse and the pretty-print run in the page using the browser's own JSON implementation.