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.