JSON Validator

Validate JSON and find the exact error

Check JSON syntax instantly. Invalid JSON is underlined in red at the precise line and column, with a plain-English reason and a one-click fix — nothing leaves your browser.

Ready — paste or type to validate

🔒 100% private — your document is processed entirely in your browser and is never uploaded, logged, or stored.

Stop guessing where your JSON breaks

A validator that only says “Invalid JSON” wastes your time. Indentioshows the exact character where parsing failed, names the cause — a trailing comma, a single quote, an unclosed bracket — and suggests how to fix it. Valid JSON gets a clear green status.

What “valid JSON” actually requires

JSON’s grammar is famously small — it fits on a business card — and a document is valid if and only if it obeys every one of these rules:

The full breakdown, with examples of each, is in theJSON syntax rules guide.

Reading the error message

Parser errors describe the moment the parser gave up, which is frequently one or more lines after the mistake itself. Knowing the translation saves a lot of scrolling:

MessageWhat it usually means
Unexpected token } in JSONA trailing comma just before that brace, or a missing value after a key.
Unexpected end of JSON inputA bracket or brace was never closed. The document is truncated — often a partial download or a log line cut off at a length limit.
Expected property name or '}'An unquoted key, or a stray comma directly after {.
Unexpected token ' in JSONSingle quotes. The document is almost certainly a Python dict or a JavaScript object literal.
Unterminated stringA missing closing quote, or an unescaped backslash swallowing it — a Windows path such as "C:\Users" is the classic case.
Unexpected non-whitespace character after JSONTwo top-level values. Usually NDJSON — several JSON objects, one per line — being fed to a plain JSON parser.

Because Indentio validates live and marks the position in the editor rather than reporting an offset, you can usually skip this translation entirely — but it is useful when the message comes from your own build log or server.

Your file might not be plain JSON

A surprising share of “invalid JSON” is valid — as something else. These formats look like JSON and are deliberately not:

If your document is one of these, Auto-fix will convert most of them into strict JSON in one click — comments stripped, quotes normalised, trailing commas removed.

Valid here, rejected by your API

Syntax is only the first gate, and three things pass a validator while still breaking a real consumer:

Beyond those, the API is applying its own schema: required fields, expected types, permitted values. That is a different question from “is this JSON?”, and a syntax validator cannot answer it.

Validate, then fix

Go deeper

Frequently asked questions

How do I check if my JSON is valid?

Paste it into the editor. Validation runs automatically as you type: a green status means valid JSON, and any error is underlined in red with its exact line and column.

What does the validator check?

It checks JSON syntax against the specification — quoting, commas, brackets, braces, and value types — and reports the first problem with a precise location and a fix suggestion.

Why does it say “trailing comma”?

JSON, unlike JavaScript, does not allow a comma after the last item in an array or object. The validator points at the exact comma so you can remove it — or click Auto-fix.

Does it validate against a JSON Schema?

Not yet. This is a syntax validator: it answers “is this parseable JSON?”, which is the question behind almost every error you hit. Checking a document against a JSON Schema — required fields, types, value ranges — is a separate step and is on the roadmap.

My JSON is valid here but my API still rejects it. Why?

Because “valid JSON” and “the JSON this endpoint expects” are different claims. Syntax is only the first gate — the API may additionally require particular fields, types, or a specific top-level shape. See the section on this above; duplicate keys, large integers, and a byte-order mark are the three usual culprits.

Does it store the JSON I paste?

No. Validation happens entirely in your browser; nothing is uploaded or saved.