Format, minify, sort keys and validate — with the line and column when it won't parse.
This runs entirely in your browser. Nothing you paste, type or drop here is sent anywhere — there is no server on the other end of it.
Format, minify, sort keys, escape and unescape — and when the document will not parse, this tells you which line and column broke it, and shows you that line. JSON.parse reports a character offset and nothing else, which is close to useless in a four-hundred-line file; turning that offset into a location is most of the value here.
The usual four: a trailing comma after the last element, single quotes instead of double, an unquoted key, or a comment. All four are legal JavaScript and none of them is legal JSON. The reported line and column will be at or just after the offending character.
No. The specification has none, which is why config formats that want them use JSON5, JSONC or YAML instead. If a file with comments is being accepted somewhere, that parser is not a strict JSON parser.
No. Parsing and formatting happen in your browser using the engine's own JSON implementation. Nothing is uploaded, which is the point — pasting a production payload into a hosted formatter means handing it over.
Because two objects with the same contents in a different order are equal as data but completely different as text. Sorting both sides removes that noise and leaves only the changes that mean something.