Skip to content

JSON Validator

Find syntax errors and warnings with line + column precision.

Live
Input

What this tool does

The JSON Validator finds syntax errors with exact line and column numbers, and warns about issues a plain JSON.parse silently accepts — duplicate keys, integers that lose precision in JavaScript, and structures so deep that downstream tools may struggle. Everything runs in your browser — nothing is uploaded.

How to use it

Paste JSON (or load the example with the missing comma), and read the status above the editor. A red banner pinpoints the first syntax error; warnings show up underneath when the document parses but has lint-level issues.

Input (missing comma after the array):

{
  "user": "ada",
  "roles": ["admin", "editor"]
  "active": true
}

Result: Invalid JSON at line 4, column 3 — click Fix in Repair to send the input to the Repair tool.

Limits and edge cases

  • Validates standard RFC 8259 JSON only. For trailing commas, single quotes, comments, or JSONP wrappers, run the JSON Repair tool first.
  • JSON Schema validation is on the roadmap — today the Validator covers parse errors plus three lint warnings (duplicate keys, deep nesting, unsafe big numbers).
  • Warnings are heuristic. The big-number scan looks for integer literals of 16+ digits whose absolute value exceeds 253 − 1.
  • Very large files (> ~1.5 MB) are processed in a background worker; the page shows a brief “processing” state.
  • Background reading: common JSON syntax errors and parsing JSON safely in JavaScript.

Frequently asked questions

Why does it say my JSON is invalid when an online site accepts it?
Some sites silently auto-repair common mistakes (trailing commas, single quotes, comments). This validator is strict — it follows RFC 8259. If you need leniency, click ‘Fix in Repair’ to convert near-JSON into valid JSON.
What does the duplicate-key warning mean?
JSON.parse silently keeps only the last value when two keys collide inside the same object, e.g. {"a":1,"a":2} becomes {a:2}. The validator surfaces the duplicates so you don’t lose data unexpectedly.
Why warn about big numbers?
JavaScript stores all numbers as 64-bit floats, so any integer with magnitude greater than 2^53 − 1 (9,007,199,254,740,991) loses precision when re-parsed. If your API returns a 64-bit ID like 9999999999999999999 you should send it as a string.
Does it support JSON5, JSONC, or trailing commas?
No — the validator is strict RFC 8259. Use the Repair tool to convert JSON5/JSONC/lenient input to standard JSON first.
Can I validate against a JSON Schema?
Not yet — that’s a planned addition. Today the tool covers syntax plus three lint heuristics.
Is my JSON sent to a server?
No. Validation happens entirely in your browser; the page never uploads your data.