About
Last updated: 12 September 2026
JSON Tool is a free, single-page utility that formats, minifies and validates JSON. It is an independent project maintained by one developer, and the whole tool is one HTML file with no backend of its own.
What it does
- Format — pretty-prints JSON with an indent width you choose from 1 to 20.
- Minify — strips all whitespace to shrink a payload.
- Validate — reports the exact parser error when the input is not valid JSON.
- Sort keys — recursively, including objects nested inside arrays, so two payloads can be compared line by line.
- Read it comfortably — line numbers, character counts, a light and dark theme, copy to clipboard, and download as
formatted.json. - Point at the problem — when the input will not parse, the failing line and column are shown with a caret under the offending character.
- Compare, validate, query, convert — a structural JSON diff, JSON Schema validation, JSONPath queries and JSON ⇄ CSV conversion, each on its own page.
- Large documents — past a few hundred kilobytes the work is handed to a background worker so the page stays responsive, up to a stated ceiling.
Who it is for
Developers eyeballing an API response, analysts inspecting a JSON export, anyone debugging a payload that came back malformed. It is also usable when you have no idea what JSON is: paste, press Format, read the result.
The design priority is that sensitive payloads stay on your machine. Config dumps, tokens, customer records and internal API responses are exactly the things that should not be pasted into a website that uploads them somewhere to reformat them. So this one does not.
How it works
Formatting happens in your browser using the JavaScript engine's own JSON parser — the same code path your browser uses to read JSON. Nothing is sent to a server for processing, and there is no queue, storage or log of what you paste. Large documents are parsed, sorted and stringified in a background worker so the page stays responsive, and that worker is a file served from this same site — it never talks to anything else. After the page has loaded you can disconnect from the network and keep working.
What it deliberately does not do
- No account, no sign-in, no usage limits, and no paywall.
- No server-side processing of your JSON, and no ability to recover anything you typed.
Known limits
It accepts strict JSON only. Comments, trailing commas, single quotes, JSON5, JSONC and newline-delimited JSON (NDJSON) are rejected — that is the JSON parser's behaviour, not a bug. There is no YAML or XML conversion and no tree or grid view. The other tools are deliberately focused rather than complete: the diff matches array items by position and does not emit a patch, and the schema validator covers the keywords most schemas actually use rather than the whole specification. Each tool page states its own limits.
Because everything runs in your tab, very large inputs are bounded by your browser's memory. The formatter moves documents past a few hundred kilobytes into a worker and refuses anything over its stated ceiling, but a multi-megabyte paste still has to be laid out by the browser itself, and that is the browser's cost rather than this site's.
Cost
Free, with no paid tier. What is and is not collected is described in full in the privacy policy.
Source code
The whole site — every page, style and script — is plain HTML and JavaScript with no build step, and it is open source under the MIT licence: the json-tool repository on GitHub. If you find a bug in how a value is formatted or a translation reads badly, an issue there is as useful as an email.
Verify it yourself
Three checks take about a minute, and they are the reason the source is public rather than a promise in a policy document:
- Read the code. Every file served is in the repository. There is no bundler and no third-party dependency, so the file you audit is the file that runs.
- Watch the network. Open your browser's developer tools, keep the Network tab in view and paste a document. Nothing carries it: formatting is a call to the browser's own
JSON.parse. The only third-party request the site ever makes is Google Analytics, and only after you accept the cookie banner. - Pull the plug. Load a tool page, then disconnect from the network. It keeps working, because nothing it needs lives on a server.
Spotted something wrong, or want a capability added? Get in touch — bug reports with the input and your browser name are the most useful kind.