Вот ошибки, с которыми чаще всего сталкиваются при работе с JSON в интеграциях:
Запятая после последнего элемента
[1, 2,] и {"a": 1,} - валидный JavaScript, но не JSON. Стандарт не разрешает запятую перед закрывающей скобкой.
Одинарные кавычки
Строки и имена свойств пишутся только в двойных кавычках: "name", а не 'name'.
Имена свойств без кавычек
{name: "Анна"} - это объект JavaScript, а не JSON. В JSON имя свойства всегда строка в двойных кавычках: {"name": "Анна"}.
Комментарии
Ни // комментарий, ни /* комментарий */ в JSON не допускаются. Если нужны комментарии, возможно, вам нужен JSON5 или JSONC - но обычные парсеры их не принимают.
NaN, Infinity и undefined
В JSON нет значений NaN, Infinity и undefined. Для отсутствующего значения используйте null, а нечисловые значения передавайте строкой или опускайте свойство.
Некорректные числа
Ведущие нули (007), знак плюс (+1), число без цифры до точки (.5) или после неё (1.), шестнадцатеричная запись (0xFF) - всё это недопустимо. Пишите 7, 1, 0.5, 1.0 и 255.
Большие числа теряют точность
JavaScript хранит числа как double, и целые больше 9 007 199 254 740 991 округляются. Идентификаторы вроде 12345678901234567890 надёжнее передавать строкой. Инструмент предупреждает о таких числах, но не меняет их в тексте.
Повторяющиеся ключи
Стандарт не запрещает повторять ключ в объекте, но поведение не определено: одни парсеры берут первое значение, другие - последнее. Инструмент считает документ корректным, но предупреждает о дубликатах.
Невидимые и «умные» символы
При копировании из мессенджеров и текстовых редакторов в JSON попадают типографские кавычки («умные»: “ ”), неразрывные пробелы и BOM в начале файла. Они выглядят нормально, но ломают разбор - инструмент называет такой символ и показывает его позицию.