«Невалидная (массив) конфигурация JSON»
- Автор
- Дмитрий Соколов, ведущий технический автор
- Проверил:
- Артём Волков
- Проверено:
- Опубликовано:
- Версия гайда:
- 1.0
Коротко
«Невалидная (массив) конфигурация JSON» значит, что Happ не смог разобрать JSON-конфигурацию: в тексте синтаксическая ошибка или он обрезан. Проверьте JSON валидатором на своём компьютере, исправьте кавычки, запятые и скобки и импортируйте конфигурацию снова.
JSON-конфигурация — полный конфиг Xray-core, который Happ передаёт ядру без изменений, один к одному. Поэтому синтаксис должен быть безупречным: одна лишняя запятая или типографская кавычка делает весь текст невалидным. Слово «массив» в сообщении указывает, что JSON может содержать несколько конфигураций в квадратных скобках, и синтаксическая ошибка в любой из них ломает разбор целиком. Проверьте текст локальным валидатором, найдите строку с ошибкой и повторите импорт.
Невалидная (массив) конфигурация JSON — «Невалидная (массив) конфигурация JSON» — ошибка импорта Happ, когда переданный текст JSON-конфигурации, одиночный объект или массив конфигураций, содержит синтаксические ошибки или недопустимые символы и не может быть разобран.
Что означает ошибка
«Невалидная (массив) конфигурация JSON»
JSON-конфигурацию используют, когда возможностей обычной ссылки не хватает: нужен свой набор исходящих соединений, особые настройки транспорта или собственные правила. Happ принимает такой текст и передаёт его Xray-core как есть.
Раз приложение ничего не исправляет, синтаксис должен быть безупречным. Ошибку вызывает любая мелочь: лишняя запятая, непарная скобка, кавычка не того вида.
Эта страница — про синтаксис JSON. Если текст разбирается, но сервер не подключается, проблема уже в полях конфигурации Xray, а не в формате.
Причины
| Причина | Вероятность | Как проверить |
|---|---|---|
| Типографские кавычки вместо прямых: заметки, мессенджер или автозамена превратили кавычки в “ ” или « ». | Высокая | Найдите в тексте символы “ ” « » ‘ ’. В JSON допустимы только прямые двойные кавычки. |
| Завершающая запятая после последнего элемента объекта или массива либо пропущенная запятая между элементами. | Высокая | Прогоните текст через локальный валидатор: он укажет номер строки и позицию ошибки. |
| Текст обрезан: мессенджер разбил длинное сообщение, и потерялись закрывающие скобки. | Средняя | Сравните число открывающих и закрывающих фигурных и квадратных скобок. Текст должен заканчиваться символом } или ]. |
| В JSON оставлены комментарии // или /* */, которые терпят некоторые редакторы, но не стандарт. | Средняя | Поищите в тексте // и /* за пределами строковых значений. |
| Это не JSON Xray: скопирована YAML-конфигурация или файл другого формата. | Низкая | Посмотрите на первый символ: JSON начинается с { или [, а YAML — со строк вида ключ: значение без скобок. |
Как исправить
Сохраните текст в файл
Вставьте JSON в текстовый редактор и сохраните как config.json в кодировке UTF-8. С файлом работать надёжнее, чем с сообщением в чате.
Результат: Файл открывается, текст виден целиком — от первой до последней скобки.
Проверьте синтаксис локально
Выполните python3 -m json.tool config.json или jq . config.json, а в PowerShell 7 — Get-Content config.json -Raw | Test-Json. Любой вариант покажет, где ошибка.
Результат: Валидатор выводит отформатированный JSON или True без сообщений об ошибке.
Замените кавычки и уберите комментарии
Замените все типографские кавычки на прямые двойные, удалите комментарии и запятые перед } и ].
Результат: Повторная проверка проходит без ошибок.
Проверьте структуру массива
Если конфигураций несколько, они должны быть элементами одного массива: [ {…}, {…} ], с запятой между объектами и без запятой после последнего.
Результат: Каждый объект открывается { и закрывается }, квадратные скобки парные.
Отключите смарт-пунктуацию на iPhone
Если JSON хранится в заметках iPhone или iPad, отключите смарт-пунктуацию в настройках клавиатуры (Настройки → Основные → Клавиатура) и перенесите текст заново.
Результат: Скопированный JSON сохраняет прямые кавычки.
Импортируйте конфигурацию снова
Скопируйте проверенный текст целиком и добавьте его в Happ через буфер обмена. На другое устройство передавайте файл, а не текст сообщения.
Результат: Конфигурация появляется в списке серверов.
Чек-лист диагностики
- Текст начинается с { или [ и заканчивается } или ].
- Все кавычки прямые двойные.
- Нет комментариев и завершающих запятых.
- Локальный валидатор не находит ошибок.
- Правила маршрутизации для JSON-конфигурации заданы внутри самого JSON.
Платформы
Ошибка встречается на платформах: Windows, macOS, Linux, Android, iPhone и iPad, Android TV.
Главное
- JSON-конфигурации передаются в Xray-core без изменений, один к одному.
- Маршрутизация Happ к JSON-конфигурациям не применяется, но геофайлы и удалённый DNS берутся из активного профиля.
- Стандарт JSON не допускает комментариев, завершающих запятых, одинарных и типографских кавычек.
- У JSON-подписки может быть ноль или один профиль маршрутизации, и изменить его нельзя.
- Конфигурацию с реальными ключами проверяйте локально: python3 -m json.tool, jq или редактором кода.
Частые вопросы
Что значит слово «массив» в ошибке Happ про JSON?
JSON бывает объектом в фигурных скобках или массивом в квадратных. Упоминание массива говорит о том, что Happ принимает и набор из нескольких конфигураций, записанных как [ {…}, {…} ]. Проверьте, что квадратные скобки парные, объекты разделены запятыми, а после последнего объекта запятой нет — это самые частые ошибки в массивах.
Почему JSON после пересылки в мессенджере стал невалидным?
Мессенджеры и приложения заметок меняют текст: заменяют прямые кавычки на типографские, два дефиса на тире, обрезают длинные сообщения или добавляют форматирование. Для JSON это фатально. Передавайте конфигурацию файлом, а не текстом сообщения, а на iPhone перед копированием из заметок отключите смарт-пунктуацию в настройках клавиатуры.
Можно ли оставлять комментарии в JSON-конфигурации для Happ?
Лучше не нужно. Стандарт JSON не предусматривает комментариев вида // или /* */, и строгий разборщик на них спотыкается, даже если ваш редактор их подсвечивает спокойно. Уберите комментарии перед импортом, а пояснения к конфигурации храните в отдельном текстовом файле рядом с ней, чтобы не потерять их при следующей правке.
Как проверить JSON, не выкладывая ключи в интернет?
Используйте инструменты на своём компьютере. На macOS и Linux подойдёт python3 -m json.tool config.json или jq . config.json, в PowerShell 7 — Get-Content config.json -Raw | Test-Json. Редакторы кода тоже подсвечивают ошибки синтаксиса. Онлайн-валидаторы для конфигураций с настоящими UUID и паролями не используйте: текст уходит на чужой сервер.
JSON импортировался, но сервер не подключается. Это та же ошибка?
Нет. Импорт проверяет, что текст является корректным JSON, а содержимое Happ передаёт Xray-core без изменений. Если в полях ошибка — неверное имя протокола, пропущенный адрес, неподходящие параметры транспорта, — она проявится при подключении как ошибка ядра Xray. В этом случае сверяйте поля конфигурации с документацией Xray-core, а не синтаксис.
Работают ли правила маршрутизации Happ с JSON-конфигурацией?
Нет, правила маршрутизации приложения к JSON-конфигурации не применяются: всё, что нужно, должно быть прописано внутри самого JSON. При этом выбор геофайлов и удалённый DNS Happ берёт из активного профиля маршрутизации. Для JSON-подписок допускается не больше одного профиля, и изменить его нельзя.
Как получить из Happ JSON рабочего сервера для образца?
Смахните рабочий сервер вправо, нажмите иконку со стрелкой и выберите «JSON». Получится конфигурация, которую приложение считает корректной, — удобный образец структуры. Вариант доступен, только если подписка не зашифрована и не скрыта. Перед тем как делиться таким JSON, помните, что в нём есть данные для подключения.
Упомянутые темы
Похожие материалы
- Ошибка импорта профиля маршрутизации в Happ
- Импорт JSON-конфигурации в Happ
- Ошибка ядра Xray в Happ на Android
- «Конфигурация не валидная» в Happ: проверка vless и vmess
- JSON-конфигурация
- Часть сайтов не открывается при включённом Happ
- Setting Up Happ on Linux
- JSON-конфигурации в Happ: передача 1:1 в Xray-core
Разделы по теме
Источники
- Документация Happ: ошибки — обращение 27 сентября 2026
- Документация Happ: примеры ссылок и параметров — обращение 27 сентября 2026
- Документация Happ: маршрутизация — обращение 27 сентября 2026
- Документация Happ: добавление конфигурации и подписки — обращение 27 сентября 2026