The test document
One line of JSON with four things that a program can change:
{"id":1234567890123456789,"price":10.50,"rate":1E2,"dup":1,"dup":2}
idis a 19-digit whole number, larger than the biggest whole number a 64-bit floating-point value holds exactly. A program that reads it as a 64-bit floating-point number holds the nearest value it can, which ends in different digits.priceandrateare10.50and1E2. A program that reads them as numbers and prints them again may write10.5and100. That is the same value written another way, so this page marks it "Same value, written differently" and not as a change.dupappears twice. JSON's grammar allows it, but a program that stores keys in a map keeps one of the two.
What each tool printed
On October 12, 2026 we opened the public page of each tool in Chrome, put the test document in its input box, pressed the tool's own format button where it has one, and saved what it printed and a screenshot. Each row below is that saved text compared, value by value, with the document. The comparison is made by the same code that runs in the box further down.
| Tool | $.id | $.price | $.rate | $.dup | Evidence |
|---|---|---|---|---|---|
| jsonformatter.orgthe JSON Formatter page, checked October 12, 2026 | 1234567890123456800 A different value | 10.5 Same value, written differently | 100 Same value, written differently | 2 Dropped | Screenshot, October 12, 2026 (1440 by 900) |
| json-indent.comthe Formatter page, checked October 12, 2026 | 1234567890123456800 A different value | 10.5 Same value, written differently | 100 Same value, written differently | 2 Dropped | Screenshot, October 12, 2026 (1440 by 900) |
| openreplay.comthe JSON formatter tool, checked October 12, 2026 | 1234567890123456800 A different value | 10.5 Same value, written differently | 100 Same value, written differently | 2 Dropped | Screenshot, October 12, 2026 (1440 by 900) |
| jam.devthe JSON formatter utility, checked October 12, 2026 | 1234567890123456800 A different value | 10.5 Same value, written differently | 100 Same value, written differently | 2 Dropped | Screenshot, October 12, 2026 (1440 by 900) |
| jsonbeautifier.orgthe home page, checked October 12, 2026 | 1234567890123456800 A different value | 10.5 Same value, written differently | 100 Same value, written differently | 2 Dropped | Screenshot, October 12, 2026 (1440 by 900) |
These are all the tools we tried on October 12, 2026; none was left out.
Screenshots
One per tool, taken on the same day. Each image loads when you open it.
Screenshot of jsonformatter.org, October 12, 2026

Screenshot of json-indent.com, October 12, 2026

Screenshot of openreplay.com, October 12, 2026

Screenshot of jam.dev, October 12, 2026

Screenshot of jsonbeautifier.org, October 12, 2026

Test any formatter
Put the test document into the formatter you use, copy what it prints, paste that into the second box and press Compare. Nothing leaves your browser.
This site's formatter, and the browser's own
The same document through this site's JSON formatter, as the page was built, and through JSON.parse followed by JSON.stringify, which is what a browser does with JSON on its own. The browser's own parser turns 1234567890123456789 into 1234567890123456800 and, of the two "dup" keys, keeps the value 2.
| Tool | $.id | $.price | $.rate | $.dup |
|---|---|---|---|---|
| This site's JSON formatterformat(), as the page was built | 1234567890123456789 Kept as written | 10.50 Kept as written | 1E2 Kept as written | 1 and 2 Kept as written |
| JSON.parse, then JSON.stringifywhat the browser's own parser does | 1234567890123456800 A different value | 10.5 Same value, written differently | 100 Same value, written differently | 2 Dropped |
This site's formatter reads the document with its own parser, which keeps every number as the digits that were written and every repeated key, and prints those. It prints all 4 values of this document as written. When a document has a number or a key that other programs would change, the formatter says so in a warning under the result.
The same parser, checked for what is valid
Keeping values matters little if the parser disagrees with other parsers about what counts as JSON. A separate check feeds 4,092 documents (867 valid, 3,225 not) to this site's parser and to Python's own json module and compares the verdicts: 0 disagreements, in the run recorded on October 12, 2026. The programs, the run and how it is repeated are on How we check every number.
What this does not show
- It is one document, on one day, in 5 tools. It says what those tools printed for this document then; it does not rank the tools or say what they do with every document.
- Tools change. If one of these now prints something different, tell us and we will repeat the test and date the new result.
- A different value is not always a mistake that matters to you. A 19-digit identifier is usually the case where it does; a price written
10.50and printed10.5is not.