Changelog
What changed on SmartJson, newest first. Found something broken? Tell us.
- New error pages: "undefined" is not valid JSON and unquoted keys, each with the exact message from 11 runtimes.
- Tool pages and articles now say when their content last changed, and the footer of every page has a link to report a problem with that page.
- The site now has one light theme. The dark mode switch is gone, and the colours of the tool buttons were darkened so their labels are easier to read.
- The compare tools no longer count a byte-order mark, Windows line endings, XML attribute order or formatting, or CSV quoting as a change. One line inserted near the top of a long file shows as one added line, unchanged stretches fold away, the download has every changed line in full, and a shared comparison opens with both versions.
- The YAML tools keep values exactly as written (file modes like 0644, versions like 3.10, 19-digit IDs, mkdocs !!python/name tags), and a paste with HTTP headers or a Markdown code fence around it is now named as such, with what to delete.
- The homepage now starts with the error decoder: paste a JSON error from Chrome, Firefox, Safari, Node or Python, or the JSON that failed, and it names the likely cause and links the page that explains it.
- When the JSON Validator finds an error it now links the page that explains that error.
- New: JSON Repair. It fixes LLM replies, Python dicts, JavaScript objects, JSON Lines and cut-off JSON, lists every change, and refuses to guess when the input is an HTML page.
- New: JSON Error Messages, Decoded, with six error pages. Each quotes the exact message from 11 runtimes, captured by running the input through the real parsers.
- Share links now carry the data after the # in the address, which browsers never send to any server. Old ?share_data= links still open.
- Merged four pages that did the same job as another page: JSON Lint into the JSON Validator, JSON Editor into the JSON Viewer, and XML Viewer and XML Editor into the XML Formatter. The old addresses redirect.
- New How we test page; rewritten About and Contact pages.
- The menu button on phones now opens the site menu. Before, it did nothing.
- The JSON Formatter and JSON Minify no longer change your numbers: IDs past 2^53, 1.50, 1e400 and -0 come out exactly as written, and duplicate keys are kept. Before, they went through JavaScript numbers and could be rounded. A byte order mark is now dropped instead of failing, and 5,000 levels of nesting format fine.
- The JSON Compare no longer calls two different large IDs identical. The YAML Compare ignores key order and handles several documents split by ---. The YAML Validator accepts multi-document files, and the CSV Validator accepts Windows line endings and reports the right line.
- Ten tool pages now show what the tool does with tricky input: big numbers, BOMs, duplicate keys, CRLF, CDATA and more. Every row is an automated test of the tool's own code.
- The captured error messages, the inputs and the capture script are public as json-error-messages on GitHub, free to reuse under CC BY 4.0.
- Shorter page titles, a share image for social links, and real last-changed dates in the sitemap.
- Moved hosting to our own server. www.smartjson.io now redirects to smartjson.io.
- Upgraded to Next.js 15 and React 19.
- Fixed tool pages that were drawn twice on load: once from the HTML, then again in the browser.
- Checked every button on every tool and fixed the ones that did not do what their label says.
- Old tool addresses now redirect to the page that replaced them.
- Fixed structured data that Google Search Console could not read.
- Each page now names its own canonical address, so search engines stop listing duplicates.
- Tool editors are now in the page HTML, so they appear before the scripts finish loading.
- Removed structured data that described ratings and reviews the site does not have.
- Removed duplicate and off-topic tool pages.
- Added the cookie choice banner. Analytics only run if you accept.
- Fixed the light/dark theme flashing the wrong colour on load.
- Rewrote the help text on every tool page with real examples and edge cases.
- Fixed tool pages that only rendered in the browser and showed search engines an empty page.
- Fixed dead links on the policy pages.
- Longer, more specific help text on the main JSON tools.