Changelog
Every user-facing change to JSON Keyper, newest first. The full history, including every line of code, is in the GitHub repository. Found a bug? Tell me.
- Every tool now has a switcher across the top, the homepage lists all six tools, and the header has a Tools link. JSON you have pasted comes with you when you switch tools.
- Input and output use a monospace font, so formatted JSON and tree output line up.
- Page addresses no longer end in
.html- for example, jsonkeyper.com/about. Old links keep working. - New guide: Null, Missing, or Unknown - thirteen mismatched payloads through Jackson 2, Jackson 3, Pydantic, and Zod, with the scripts to reproduce it.
- Corrected Jackson vs Gson vs Moshi: its statements about unknown fields and checked exceptions were true of Jackson 2 only.
- Added my work history and the problems behind the guides to the About page.
- New JSON formatter: pretty-print with a 2- or 4-space indent, or minify, from the same format list. It changes only whitespace, so large integer IDs and values like
12.50come out exactly as pasted. - A trailing comma in invalid JSON is now reported with its line and column, instead of a truncated browser message.
- The four tool pages - JSON to TypeScript, JSONPath generator, JSON flattener, and tree viewer - now run the tool directly on the page, each with its own worked example: an issue-tracker response, a Kubernetes pod list, a payment webhook, and a GeoJSON file.
- TypeScript output now marks a field that is
nullon some records asT | nullinstead of taking the type of whichever record came first, and pools array elements across records, so an emptylabels: []on one record no longer hides the element type seen on another. - Rewrote the About and Contact pages, and corrected the privacy policy: Google Analytics sets first-party cookies, which the previous wording denied.
- Revised JSON vs XML with measured payload sizes and parse times, added a section on what JSON cannot represent to What is JSON?, and made the JSON tools guide recommend other tools on their merits.
- Expanded the About page with my background, how the site has grown, how the guides are written, and how it is funded; author details on every guide now say what I work in.
- Added this changelog.
- Added a Clear button to the Execute cURL panel, and documented the Execute cURL tab in the how-to section and the terms of service.
- New Execute cURL tab: paste a curl command and the tool fetches the live response through a proxy, then extracts its keys. See the privacy policy for what the proxy does and does not keep.
- New guides: CORS explained, processing large JSON files (with measured memory for jq and Python), and Jackson vs Gson vs Moshi.
- Corrected earlier claims that plain
jqstreams large files. It does not; the large-files guide measures why. - Fixed misaligned input and output columns and a stray focus outline on the input tabs.
- Removed unused JavaScript libraries to speed up page loads, and added link previews for social sharing.
- Performance work on page layout stability.
- Added the four format pages, and
?format=links that open the tool with an output format preselected.
- Six output formats instead of one: key paths, key paths with value types, unique key names, JSONPath, indented tree, and TypeScript interface.
- Collapse array indices, structure statistics, a built-in sample, file upload and drag-and-drop, Ctrl + Enter, and download.
- Parse errors now report the line and column of malformed JSON.
- Rebuilt the homepage with a worked example, a path-notation reference, and a limitations section. Corrected blog dates that had been shown wrongly, and added author information.
- Expanded the existing guides.
- Redesigned the site and added the blog, with nine guides on JSON basics, nested data, REST APIs, JSON Schema, and Python.
- First version: paste JSON, get every key path in dot notation.