What JSON does not allow, however reasonable it looks
Trailing commas are the most frequent. JavaScript accepts them, most languages accept them in their own literals, and JSON does not. An array ending in a comma before the bracket is invalid, and it is easy to leave behind after deleting the last element.
Comments are not part of JSON either. There is no // and no /* */, however useful they would be in a configuration file. Formats that do allow them — JSON5, JSONC, YAML — are different formats, and a parser expecting JSON will reject them.
Strings must use double quotes, and keys must be quoted. 'name' and name are both invalid where "name" is required. This trips people up most often when JSON has been hand-written from a JavaScript object literal, where all three forms are legal.