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 и безопасно удалить форматирование.