Skip to main content
CheckTown
Конвертеры

Конвертер JSON5 в JSON: очистка конфигурационных файлов

Опубликовано 5 мин чтения
В этой статье

Что такое JSON5?

JSON5 — это надмножество JSON, добавляющее возможности, вдохновлённые синтаксисом ECMAScript 5.1. Он был создан, чтобы сделать JSON более удобным для конфигурационных файлов и случаев, когда люди пишут и читают JSON вручную. Каждый валидный документ JSON также является валидным JSON5, но JSON5 добавляет комментарии, завершающие запятые, ключи без кавычек и другие удобства.

Спецификация JSON5 была завершена в 2018 году и широко принята в инструментарии JavaScript. Инструменты сборки, такие как Babel, Next.js и Webpack, принимают конфигурационные файлы JSON5. Конвертация JSON5 в стандартный JSON необходима при взаимодействии с системами, понимающими только строгий JSON, такими как API, базы данных и большинство языков программирования.

Возможности JSON5

JSON5 добавляет несколько синтаксических расширений, упрощающих написание и поддержку конфигурационных файлов.

  • Комментарии — разрешены однострочные (//) и многострочные (/* */) комментарии, делая файлы конфигурации самодокументируемыми
  • Завершающие запятые — массивы и объекты могут иметь запятую после последнего элемента, уменьшая шум в диффах
  • Ключи без кавычек — ключи объектов, являющиеся валидными идентификаторами ECMAScript, не нуждаются в кавычках
  • Шестнадцатеричные числа — числовые значения можно записывать как 0xFF, полезно для цветовых кодов в конфигурации
  • Многострочные строки — значения строк могут охватывать несколько строк с помощью продолжения обратным слешем
  • Специальные числовые значения — Infinity, -Infinity и NaN являются валидными числовыми литералами в JSON5

Попробуйте бесплатно — без регистрации

Конвертировать JSON5 в JSON →

Где используется JSON5

JSON5 используется преимущественно в инструментарии экосистемы JavaScript, где конфигурационные файлы пишутся и поддерживаются разработчиками.

  • Babel — файлы .babelrc и babel.config.json5 поддерживают синтаксис JSON5 для конфигурации сборки с комментариями
  • TypeScript — tsconfig.json поддерживает возможности JSON5, такие как комментарии и завершающие запятые (технически JSONC)
  • Chrome DevTools — профили ограничения сети и другие настройки используют формат JSON5
  • Next.js — конфигурационные файлы принимают JSON5 для удобной настройки с встроенной документацией

Часто задаваемые вопросы

Могут ли браузеры парсить JSON5 нативно?

Нет. Браузеры поддерживают только стандартный JSON через JSON.parse(). Для парсинга JSON5 в браузере или приложении Node.js нужен npm-пакет json5. Инструменты сборки, поддерживающие JSON5, выполняют парсинг внутренне во время этапа сборки.

В чём разница между JSON5 и JSONC?

JSONC (JSON с комментариями) добавляет только поддержку комментариев к JSON. JSON5 — это более широкое надмножество, добавляющее комментарии, завершающие запятые, ключи без кавычек, шестнадцатеричные числа, многострочные строки и специальные числовые значения. tsconfig.json TypeScript и settings.json VS Code используют JSONC, тогда как Babel и другие инструменты используют полный JSON5.

JSON5 — это то же, что YAML?

Нет. JSON5 остаётся близким к синтаксису JSON с небольшими эргономическими дополнениями. YAML — это совершенно другой формат со структурой на основе пробелов, якорями и множеством других возможностей. JSON5 проще конвертировать в JSON, поскольку он является строгим надмножеством. Конвертация YAML в JSON может быть с потерями, поскольку YAML поддерживает типы данных, которых нет в JSON.

Похожие инструменты