How to Use This Tool
Every JSON parser gives you the same unhelpful answer when a document is malformed: a character offset.
Unexpected token } in JSON at position 147 is technically accurate and practically useless,
because no editor in the world shows you character 147. This tool converts that offset into a line and
column, prints the offending line, and tells you in plain English what the parser was expecting instead.
Validating and formatting
Paste or type your JSON into the editor. Validation runs as you type, so you do not need to press anything to find out whether the document parses. If it does, you get a green confirmation and a set of statistics. If it does not, you get a red panel naming the line, the column, the character found and a short diagnosis — a trailing comma, an unquoted key, a single quote where a double quote belongs, or a value that was never closed.
Format pretty-prints the document with your chosen indentation. Two spaces is the common default; four is conventional in some Python and Java codebases; a real tab is what a few linters insist on. Minify strips every optional byte, which matters when the document is going into a URL, an environment variable or an API payload where size is billed. Sort keys reorders every object recursively into alphabetical order, which is the single most effective trick for making a diff between two API responses readable.
Reading the statistics
Four figures appear once the document is valid. Size is the byte length as UTF-8, not the character count — those differ the moment you have an accent or an emoji in a string. Keys counts every key in every nested object, which is a fast way to sanity-check that a paginated response returned what you expected. Max depth reports how deeply nested the structure is; if that number surprises you, your schema probably needs flattening. Minified saving shows what you would gain by removing whitespace, which is usually 15–30% on a pretty-printed document.
Privacy note that actually matters here
JSON payloads routinely contain access tokens, customer records and internal identifiers. This page never transmits your input. There is no upload, no server round trip and no logging: the parsing happens in your browser using the built-in JSON engine, and closing the tab is all the cleanup required. That is a deliberate design choice, because pasting a production payload into a random online formatter is a surprisingly common way to leak a credential.