JSON Validator

Pinpoint syntax errors to the exact line and column.

Your data is processed entirely in your browser and is never uploaded.

Tool workspace

INPUT JSON

Drag & drop file here or browse

Status: Empty0 chars

Options

JSON allows repeated keys; most code keeps the last. We warn you.

Append a pretty-printed copy to the report when valid.

Normalized indent
Ready, paste to start
DIAGNOSTICS
Output: Empty0 chars
HOW IT WORKS

Validate JSON in three steps

Paste or upload

Drop in any JSON. Validity is checked as you type, up to 15M characters.

Read the diagnosis

Errors point to the exact line and column, with the offending lines and a caret.

Inspect structure

When valid, see a structure tally, duplicate-key warnings, and an optional normalized copy.

Docs · Validate

What validation actually checks

Validating JSON means parsing it against the JSON grammar: brackets balanced, strings closed, commas and colons where they belong, numbers and literals well-formed. It is a syntax check, not a meaning check: the validator confirms the document is *shaped* like JSON, not that it matches some expected schema (schema validation is a separate, later tool). When something is wrong, the engine walks the text character by character and reports the exact line and column where the grammar breaks, with the offending lines and a caret so you can fix it without hunting. All of it runs in your browser.

Common errors

Trailing comma

JSON forbids a comma after the last item in an object or array. It is the single most common mistake when editing by hand. Delete the comma before the closing bracket.

{
  "name": "Ada",
  "role": "engineer",
}
Unexpected end of input

A bracket, brace, or string was opened and never closed. The caret lands at the end of the text because that is where the parser ran out while still expecting more. Add the missing close.

{
  "name": "Ada",
  "role": "engineer"
Unquoted key

Object keys must be double-quoted strings. JavaScript object literals let you skip the quotes; JSON does not. Wrap the key in double quotes.

{
  name: "Ada"
}
Single quotes

JSON only accepts double quotes for strings and keys. Single quotes are valid in JavaScript but not in JSON. Replace them with double quotes.

{
  'name': 'Ada'
}

Try these

Nested object
{
  "user": { "id": 1, "name": "Ada" },
  "active": true,
  "score": null
}

A valid document with nesting and mixed types. It should report Valid.

Array of records
[
  { "id": 1, "ok": true },
  { "id": 2, "ok": false }
]

Top-level arrays are valid JSON too. Each element is checked in turn.

pair this withFix & format → JSON Formatter·Compare two docs → JSON Diff·Then minify → JSON Minifier

FAQ

Frequently asked questions

Is my JSON uploaded anywhere?

No. Validation runs entirely in your browser (in a background worker for large files). Your data never leaves your machine.

Why are duplicate keys only a warning?

The JSON specification permits repeated keys, and JSON.parse silently keeps the last value. That is usually a bug. We flag them so you can decide, rather than rejecting valid input.

How exact are the line and column numbers?

Exact, and identical in every browser. The validator walks the JSON grammar itself rather than reading an error string, so the coordinates never depend on the engine's message format.