"Invalid JSON" is a useless error message. These tools give you the character offset, the line, the column, and a plain description of what the parser expected instead — and where the fault is mechanical, they will fix it and show you what changed.
?
Inspect, validate & repair
Validate, format, repair, compare, query, and reshape payloads before they ship.
The five mistakes that account for most invalid JSON
Hand-edited JSON fails in a small number of predictable ways, and every one of them is reported here by position rather than as a generic parse failure.
Trailing commas — legal in JavaScript, illegal in JSON, and the single most common cause.
Single quotes — JSON strings and property names must use double quotes.
Unquoted keys — valid in a JavaScript object literal, invalid in JSON.
Comments — JSON has none. JSONC and JSON5 do, and neither of them is JSON.
Raw control characters — a literal newline or tab inside a string must be escaped as \n or \t.
Validation is not the same as schema validation
A document can be perfectly valid JSON and still be wrong for its consumer. Syntax validation answers "can this be parsed"; schema validation answers "does this have the fields the API requires, with the right types". Generate a starting schema from a representative document with the JSON Schema generator, then tighten it by hand — inferred schemas describe the sample you gave them, not the contract you meant.
Comparing two documents
Diffing JSON as text produces noise: reordering keys changes every line without changing the data. The comparison tool matches by path instead, so it reports added, removed, and changed values rather than moved lines. Sort the keys first if you also want the text form to be stable — that is what the sorter is for.