JSON Validator

Check JSON against the specification and get the line, column and cause.

Input
Output
size nodes depth integers beyond 2⁵³

About this tool

Paste a JSON document and it is checked continuously against the JSON specification (RFC 8259 / ECMA-404) as you type. The first character that breaks the rule gets a marker, and every finding names its exact line and column.

Findings are written for the person reading them, not the parser that produced them: there is an extra comma before this closing brace, not Unexpected token}. Each finding also states the specific fix.

Validation is strictly client-side. The document never leaves the tab — which matters most exactly here, because the thing you are validating is often a config file full of secrets.

How to use it

  1. Paste or drop your JSON. Findings appear as you type — there is no button.
  2. Click any finding to jump to the exact character in the input pane.
  3. Problems marked auto-fixable have a Fix it button; anything ambiguous is described precisely instead of being guessed at.

Worked example

For a document with a smart quote instead of a straight one — the classic Word paste — the validator reports the exact character and what to replace it with, rather than a generic syntax error at some offset.

{
  "name": "Sam",
  “email”: "s@x.io"
}

A typical finding

Frequently asked questions

Is my JSON valid?
Paste it and the status line says so immediately. A document is valid when it parses under the JSON specification: one value, double-quoted strings, no trailing commas, no comments, no unquoted keys. The findings list tells you the first thing that breaks any of those rules, where, and how to fix it.
Does it allow comments?
Strict JSON does not — that is a rule of the format, not a limitation here. If your file is JSONC (JSON with comments, like tsconfig.json), set the Comments control to keep or strip them; the validator then treats the file as the dialect you chose.
What is a trailing comma and why is it invalid?
A comma after the last item in an object or array: {"a": 1,}. JSON's grammar allows a comma only between items, so a parser stops at it. It is the single most common error in hand-edited JSON — usually left behind after deleting a line.
Why does it warn about duplicate keys instead of erroring?
The specification says an object's keys SHOULD be unique — parsers accept repeats and keep the last one. That is dangerous, so it is reported as a warning naming the key, but the document is still technically valid.
What does the "integers beyond 2⁵³" warning mean?
It means the document contains an integer larger than JavaScript can represent exactly (9,007,199,254,740,991). It is valid JSON — this tool preserves the exact digits — but any consumer that reads it into a float will round it. Worth knowing before a snowflake id silently becomes the wrong id.