What it does
Paste JSON, or open a file, and choose how it is laid out: two spaces, four spaces, a tab per level, or no white space at all. The result updates as you type. Sort keys puts every object's members in order, however deep (arrays keep theirs), which makes two documents easy to compare. ASCII only writes every character outside ASCII as \uXXXX, with a surrogate pair above U+FFFF, so the text survives anything that carries only ASCII.
Numbers stay exact
Every digit of a number is kept: 9223372036854775807 stays 9223372036854775807 and 1.50 stays 1.50 (an exponent is written in its canonical form, so 1E3 becomes 1e+3). Tools that go through JavaScript's own JSON.parse turn the first into 9223372036854776000.
Your JSON stays in your tab
The formatter is the same Rust engine as the desktop app, compiled to WebAssembly and run here. Nothing is sent to a server. Several values in a row (JSON Lines) are read as one array. This page takes up to 10 MB; the desktop app formats files of any size. To query the result, use Open in Query, or the playground.
More tools
Merge several files into one, compare two documents, patch one, or validate it against a JSON Schema.