JSON и схемы

Комментарии в JSON: разрешены ли комментарии в стандарте JSON?

В строгом стандарте JSON комментарии запрещены. Парсер, поддерживающий // или /* */, обрабатывает расширенный диалект (JSONC или JSON5).

Опубликовано

Стандарт JSON запрещает комментарии

Создатель JSON Дуглас Крокфорд исключил комментарии из спецификации, чтобы предотвратить использование синтаксических хаков парсинга.

{
  // Ошибка в стандартном JSON!
  "timeout": 5000
}

Использование поля "_comment"

Если файл должен оставаться валидным JSON, можно добавить обычное строковое поле для пояснения.

{
  "_comment": "Таймаут подключения в мс",
  "timeout": 5000
}

Диалекты JSONC и JSON5

JSONC (JSON with Comments) используется в VS Code (tsconfig.json, settings.json), а JSON5 поддерживает висячие запятые и одинарные кавычки.

Ключевое слово $comment в JSON Schema

В JSON Schema предусмотрено служебное ключевое слово $comment для документирования назначения правил схемы.

Проверьте пример

Увидьте ошибку комментария в строгом JSON

Комментарий // делает документ некорректным для строгого парсера.

{
  // API timeout
  "timeout": 5000
}

Ожидаемый результат: Минификатор покажет настоящую ошибку парсера и не удалит комментарий незаметно.

Проверьте пример

Используйте обычное свойство данных

Поле _comment — это корректные данные JSON, а не синтаксис комментария.

{
  "_comment": "API timeout in ms",
  "timeout": 5000
}

Ожидаемый результат: JSON проходит проверку, а _comment сохраняется в минифицированном результате.

Проверьте синтаксис

Проверка JSON без комментариев

Используйте JSON Minifier, чтобы проверить валидность JSON и безопасно удалить форматирование.

Открыть JSON Minifier →