Does your JSON formatter change your data?

Updated . What five online JSON formatters did to one test document, dated, with screenshots.

Yes, all 5 of the online JSON formatters we tried changed or dropped a value in one short test document. On October 12, 2026, all printed 1234567890123456800 for 1234567890123456789, and all 5 printed one of the two "dup" keys and left the other out. This site's formatter prints all 4 values exactly as written.

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}
  • id is 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.
  • price and rate are 10.50 and 1E2. A program that reads them as numbers and prints them again may write 10.5 and 100. That is the same value written another way, so this page marks it "Same value, written differently" and not as a change.
  • dup appears 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.

What each tool printed for 4 values of the test document, on October 12, 2026.
Tool$.id$.price$.rate$.dupEvidence
jsonformatter.orgthe JSON Formatter page, checked October 12, 20261234567890123456800 A different value10.5 Same value, written differently100 Same value, written differently2 DroppedScreenshot, October 12, 2026 (1440 by 900)
json-indent.comthe Formatter page, checked October 12, 20261234567890123456800 A different value10.5 Same value, written differently100 Same value, written differently2 DroppedScreenshot, October 12, 2026 (1440 by 900)
openreplay.comthe JSON formatter tool, checked October 12, 20261234567890123456800 A different value10.5 Same value, written differently100 Same value, written differently2 DroppedScreenshot, October 12, 2026 (1440 by 900)
jam.devthe JSON formatter utility, checked October 12, 20261234567890123456800 A different value10.5 Same value, written differently100 Same value, written differently2 DroppedScreenshot, October 12, 2026 (1440 by 900)
jsonbeautifier.orgthe home page, checked October 12, 20261234567890123456800 A different value10.5 Same value, written differently100 Same value, written differently2 DroppedScreenshot, 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
jsonformatter.org on October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800
jsonformatter.org, October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800 (after pressing Format / Beautify).
Screenshot of json-indent.com, October 12, 2026
json-indent.com on October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800
json-indent.com, October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800 (the tool formatted it without a button press).
Screenshot of openreplay.com, October 12, 2026
openreplay.com on October 12, 2026: this tool has one text box, so its output replaces the document; the screenshot shows the output, with the id printed as 1234567890123456800
openreplay.com, October 12, 2026: this tool has one text box, so its output replaces the document; the screenshot shows the output, with the id printed as 1234567890123456800 (after pressing Format).
Screenshot of jam.dev, October 12, 2026
jam.dev on October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800
jam.dev, October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800 (the tool formatted it without a button press).
Screenshot of jsonbeautifier.org, October 12, 2026
jsonbeautifier.org on October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800
jsonbeautifier.org, October 12, 2026: the document in the input box and the output beside it, with the id printed as 1234567890123456800 (after pressing Beautify >>).

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.

The same document through this site's formatter, and through the browser's own JSON.parse and JSON.stringify.
Tool$.id$.price$.rate$.dup
This site's JSON formatterformat(), as the page was built1234567890123456789 Kept as written10.50 Kept as written1E2 Kept as written1 and 2 Kept as written
JSON.parse, then JSON.stringifywhat the browser's own parser does1234567890123456800 A different value10.5 Same value, written differently100 Same value, written differently2 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.50 and printed 10.5 is not.
Cite this page
APA
HatchLoop. (2026, October 12). Does your JSON formatter change your data?. HatchLoop Tools. https://tools.hatchloop.dev/json-numbers-proof/
Link
https://tools.hatchloop.dev/json-numbers-proof/

The JSON tools