Ошибки разбора JSON

ОБНОВЛЕНО 1 АВГУСТА 2026 ЧТЕНИЕ 5 МИН

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

Семь ошибок по частоте

ЧТО ЛОМАЕТ ФАЙЛ
  • лишняя запятая частая После последнего элемента списка или объекта её быть не должно
  • пропущенная запятая частая Между соседними элементами обязательна
  • кавычки-ёлочки частая Текстовый редактор заменил " на «типографские» — JSON их не принимает
  • незакрытая скобка частая Обычно при копировании куска файла
  • комментарии частая Строки с // в чистом JSON недопустимы, хотя некоторые клиенты их терпят
  • BOM в начале редкая Невидимый маркер кодировки от редактора Windows
  • обрезанный хвост редкая Файл скачан не полностью или скопирована часть

Как найти за минуту

  1. Откройте файл в редакторе с подсветкой

    Подойдёт любой современный редактор кода: он подсветит место ошибки красным.

  2. Посмотрите на номер строки из сообщения

    Клиенты часто пишут позицию: «unexpected token at line 24». Ошибка обычно строкой выше указанной.

  3. Проверьте парность скобок

    Редакторы подсвечивают пару при постановке курсора. Число { должно совпадать с числом }.

  4. Проверьте последние элементы списков

    Лишняя запятая почти всегда стоит перед закрывающей скобкой.

  5. Пересохраните в UTF-8 без BOM

    Если ошибка «на первом символе», а глазами всё в порядке — дело почти наверняка в BOM.

Как выглядят ошибки в тексте

// ЛИШНЯЯ ЗАПЯТАЯ
"rules": [
  { "type": "field", "outboundTag": "direct" },   ← запятая перед ] лишняя
]

// ПРОПУЩЕННАЯ ЗАПЯТАЯ
{ "tag": "proxy" "protocol": "vless" }            ← между полями нужна запятая

// КАВЫЧКИ-ЁЛОЧКИ
{ «tag»: «proxy» }                                ← только прямые кавычки

// НЕЗАКРЫТАЯ СКОБКА
{ "outbounds": [ { "tag": "proxy" }               ← не хватает ] и }

Ошибки, которые JSON пропускает

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

  • Опечатка в имени поля: serverName написано как servername.
  • Тег выхода в правиле не совпадает с тегом в outbounds.
  • Порт указан строкой вместо числа: "port": "443" вместо "port": 443 — часть клиентов принимает, часть нет.
  • Пропущен обязательный параметр Reality — файл читается, соединение не устанавливается.

Всё это ищется в логе: там видно, на каком этапе всё остановилось.

СВЕРКА ЗА ДВЕ МИНУТЫ

Проверьте, в строке дело или в самом доступе

Формат можно разобрать здесь, но живой ли сервер — показывает только подстановка. Подставьте в тот же клиент заведомо рабочую ссылку: подключилось — клиент и настройки исправны, вопрос к вашему ключу. Демо ТОК VPN на 3 дня выдаётся без карты.

  • ссылка приходит сразу
  • подходит Happ и другим клиентам
  • карта не нужна
Взять ссылку для сверки → без карты · 3 дня

Клиент пишет «неверный формат», но файл открывается в браузере.

Браузер терпимее. Проверьте формат ядра: конфиг sing-box в клиенте на Xray синтаксически верен, но структурно чужой.

Можно ли оставлять комментарии в конфиге?

В чистом JSON — нет. Часть клиентов допускает //, но полагаться на это не стоит: при переносе в другой клиент файл перестанет читаться.

СВЕРКА С ЗАВЕДОМО РАБОЧИМ ДОСТУПОМ

Разбор формата отвечает на вопрос «строка составлена правильно?», но не на вопрос «доступ ещё живой?». Второй проверяется только подстановкой: демо ТОК VPN на 3 дня, без карты — ссылка приходит сразу, и по ней видно, ваш ли ключ виноват.

Взять ссылку для сверки →
СМОТРИТЕ ТАКЖЕ
Страница ответила на ваш вопрос?