About this tool
Paste a document to check it against RFC 8259 using the browser's own JSON parser — so anything that passes here is accepted by every standard parser. When it fails, the page shows the line and column, prints the offending line with a caret underneath it, and names the cause in plain English.
That last part is the point. "Unexpected token } in JSON at position 118" tells you where the parser gave up, not what you did wrong, and the wording differs between Chrome, Firefox and Safari. This reads the document around the failure instead: a trailing comma before a closing brace, single quotes where JSON requires double, an unquoted property name, a missing comma between two values, a comment, a Python None or True, a NaN, or an unclosed bracket — in which case it names the line where that bracket was opened. The parser's own message stays available underneath, because when the interpretation is wrong, the raw text is what you want to search for.
JSON is stricter than the JavaScript object literals it resembles, and almost every real-world failure comes from that gap: no trailing commas, no comments, no single quotes, keys always in double quotes, and no NaN or Infinity.
The document is parsed in your tab and never uploaded — which matters, since the JSON people need to validate is so often an API response or a config file with credentials in it.