SmartJson.io

How we test

By Santhi · Last capture October 9, 2026

Every error message quoted on JSON Error Messages, Decoded was printed by a real parser. None of them are typed by hand or copied from another website. This page says how, so you can check it or run it yourself.

The runtimes

11 runtimes, captured on October 9, 2026. Browsers run headless in Playwright; Node, Bun and Python run in their official Docker images.

RuntimeParserVersion
Chrome 151V8151.0.7922.34
Firefox 153SpiderMonkey153.0
Safari 26 (WebKit)JavaScriptCore26.5
Node 24V824.21.0
Node 22V822.23.3
Node 20V820.20.2
Node 18V818.20.8
BunJavaScriptCore1.4.2
Python 3.13CPython json3.13.16
Python 3.12CPython json3.12.15
Python 3.10CPython json3.10.22

Safari is captured with Playwright's WebKit build, which uses the same JavaScriptCore parser as Safari. It is not the Safari app itself.

The inputs

Each runtime parses the same 18 broken inputs: JSON.parse in JavaScript, json.loads in Python. The message each one prints is saved word for word.

  1. An HTML page where JSON was expected
  2. An empty string
  3. A comma after the last item in an object
  4. Single-quoted keys and strings
  5. An object key with no quotes
  6. A // comment
  7. NaN as a value
  8. JSON cut off in the middle
  9. A byte order mark before the JSON
  10. A Python dict printed with print() (True, None, 'quotes')
  11. Two JSON documents one after the other
  12. A real line break inside a string
  13. undefined as a value
  14. Two values with no comma between them
  15. The text [object Object]
  16. A Windows path with single backslashes
  17. The word undefined on its own, from JSON.parse(undefined)
  18. Infinity as a value

Running it yourself

The capture is one shell script. It needs Docker, runs one container at a time, and writes every message to a JSON file that the error pages are built from. The script, the inputs and every captured message (as JSON and CSV, free to reuse under CC BY 4.0) are public in json-error-messages on GitHub.

git clone https://github.com/smartjson-io/json-error-messages.git
cd json-error-messages && sh capture/run.sh

The same code in your own browser console gives the same message as the Chrome, Firefox or Safari row, as long as your browser version is close to the one in the table. Messages do change between versions: Node 18 and Node 20 word several of them differently, which is why each version gets its own row.

What the automated tests check

  • Messages still match. A unit test parses every input with the Node version running the tests and fails if the message differs from the saved capture.
  • Every message is explained. A unit test pastes each captured message into the decoder on /errors/ and fails if the real cause is not in the top three answers.
  • Repairs are safe. Tests for JSON Repair check that every repaired output parses, that valid JSON comes back unchanged, that Windows paths keep their backslashes, and that an HTML page, [object Object] and an empty input are refused rather than guessed at.
  • The tools work like a visitor uses them. Playwright browser tests open the site, paste input, press the buttons and read the output, on every change before it ships.

Corrections

If a message on this site does not match what your browser or language prints, or an explanation is wrong, tell us with the runtime, its version and the input. We re-run the capture, fix the page, and list the fix in the changelog with its date.

All Tools & Converters

JSON Tools

  • JSON Hub
  • JSON Formatter
  • JSON Validator
  • JSON Repair
  • JSON Error Messages
  • JSON Viewer
  • JSON Minify
  • JSON Stringify
  • JSON Sorter
  • JSON Compare
  • JSON to CSV
  • JSON to XML
  • JSON to YAML

XML Tools

  • XML Hub
  • XML Formatter
  • XML Validator
  • XML Compare
  • SOAP Formatter
  • WSDL Formatter
  • XML to JSON
  • XML to CSV

CSV Tools

  • CSV Hub
  • CSV Formatter
  • CSV Validator
  • CSV to JSON
  • CSV to XML
  • Compare Tools

    • JSON Compare
    • XML Compare
    • YAML Compare
    • CSV Compare
    • Text Compare

YAML Tools

  • YAML Hub
  • YAML Formatter
  • YAML Validator
  • YAML to JSON
  • Other Tools

    • Converters Hub
SmartJson.io

JSON, XML, CSV and YAML tools that run in your browser. Nothing you paste is uploaded.

Sitemap

Company

  • About Us
  • Contact
  • How We Test
  • Changelog
  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • Disclaimer

© 2026 SmartJson.io. All rights reserved.

Report a problem with this page
Made withfor developers