The five mistakes behind almost every invalid JSON
Strict JSON rejects several things JavaScript happily accepts, and the same five account for most failures: a trailing comma after the last item of an object or array; unquoted or single-quoted keys; single-quoted string values; comments (JSON has none, by design); and literal undefined or NaN, which the spec does not define. If a payload came from copy-pasting a JS object literal out of code, expect at least one of these. The fix is usually mechanical once the validator points at the right line.
How to read the line and column the parser reports
Parsers report the first position where the text stopped making sense — which is usually one token after the actual mistake. A missing comma between two properties is reported at the start of the second property; an unclosed string often surfaces at the end of the file. So when the message says line 12, read line 11 and the start of 12 together. The gutter marker and "Go to line" button select the whole reported line to make that scan fast.