JSON выглядит просто: фигурные скобки, ключи и значения. Но даже одна лишняя запятая может сделать весь документ невалидным.

Ниже — семь ошибок, которые встречаются чаще всего.

1. Одинарные кавычки вместо двойных

Неправильно:

{
  'name': 'AllBlog'
}

Правильно:

{
  "name": "AllBlog"
}

В JSON строки и имена ключей должны быть заключены в двойные кавычки.

2. Лишняя запятая в конце

Неправильно:

{
  "name": "AllBlog",
  "year": 2026,
}

После последнего свойства запятая не ставится.

Правильно:

{
  "name": "AllBlog",
  "year": 2026
}

Та же ошибка часто встречается в массивах.

3. Ключ написан без кавычек

Такой объект допустим в JavaScript, но не в JSON:

{
  name: "AllBlog"
}

Валидный вариант:

{
  "name": "AllBlog"
}

JSON похож на объект JavaScript, но правила у него строже.

4. Используются неподдерживаемые значения

В JSON есть ограниченный набор типов:

  • строка;
  • число;
  • объект;
  • массив;
  • true;
  • false;
  • null.

Нельзя использовать:

undefined
NaN
Infinity
функции
комментарии

Например, вместо undefined обычно передают null или вообще не добавляют поле.

5. Не закрыта скобка

Неправильно:

{
  "user": {
    "name": "Alex"
}

Здесь открыт внешний объект и вложенный объект, но закрыт только один.

Правильно:

{
  "user": {
    "name": "Alex"
  }
}

При глубокой вложенности такую ошибку сложно заметить глазами. Форматирование с отступами делает структуру понятнее.

6. В строке находится необработанная кавычка

Неправильно:

{
  "message": "Он сказал "привет""
}

Внутренние кавычки нужно экранировать:

{
  "message": "Он сказал \"привет\""
}

А перенос строки внутри значения записывается как \n.

7. Несколько значений идут подряд

Неправильно:

{"id": 1}
{"id": 2}

Обычный JSON-документ должен содержать одно корневое значение.

Если нужны несколько объектов, поместите их в массив:

[
  {"id": 1},
  {"id": 2}
]

Отдельный формат JSON Lines действительно хранит по одному объекту в строке, но это уже не обычный единый JSON-документ.

Как быстро найти ошибку

Вместо ручного поиска можно вставить документ в JSON Formatter AllBlog.

Сервис умеет:

  • проверять синтаксис;
  • показывать сообщение об ошибке;
  • форматировать JSON с отступами;
  • минифицировать документ в одну строку;
  • сохранять Unicode-символы в читаемом виде.

Для быстрой проверки можно использовать сочетание Ctrl + Enter.

Красивый JSON и минифицированный JSON

Форматированный вариант удобен человеку:

{
  "name": "AllBlog",
  "tools": [
    "JSON",
    "Regex",
    "Cron"
  ]
}

Минифицированный вариант занимает меньше места:

{"name":"AllBlog","tools":["JSON","Regex","Cron"]}

Содержание одинаковое. Меняется только количество пробелов и переносов.

Итог

Большинство проблем с JSON сводится к нескольким правилам: двойные кавычки, отсутствие лишней запятой, закрытые скобки и поддерживаемые типы данных.

Если документ большой, сначала отформатируйте его и запустите валидатор. Сообщение об ошибке почти всегда быстрее ручного поиска.