Конвертер .env в JSON
Преобразуйте содержимое .env файла в JSON с автоопределением типов, вложенными ключами и комментариями #, привязанными к переменной под ними. Работает полностью в браузере.
Вставьте содержимое .env — и в браузере сразу получится JSON. По умолчанию числа и булевы значения распознаются (DEBUG=true становится настоящим boolean, а не строкой "true"), ключи с точками вроде DB.HOST превращаются во вложенные объекты, а комментарий #, написанный прямо над переменной, переносится в поле $comments этой переменной. Каждую из этих функций можно отключить. На сервер ничего не загружается — конвертация идёт целиком на стороне клиента.
О конвертере .env в JSON
Файл .env — это обычный текст KEY=VALUE: писать его легко, а вот отдать коду, который ждёт структурированную конфигурацию, неудобно. Инструмент понимает синтаксис .env — комментарии #, значения в кавычках, разделители = и :, префикс export — и выдаёт JSON-объект, который можно сразу подставить в загрузчик конфигурации, тестовую фикстуру или изучить при отладке. Результатом управляют три переключателя: определение типов превращает строки, похожие на числа и булевы значения, в настоящие типы JSON; вложение по точкам разворачивает FEATURE.CACHE.TTL в { "FEATURE": { "CACHE": { "TTL": ... } } }; режим комментариев сохраняет или отбрасывает строки #, которыми был задокументирован исходный файл.
Вам также может понадобиться
Как конвертировать .env в JSON
- 1
Скопируйте .env в поле ввода
Вставьте файл целиком или нажмите иконку колбы — появится пример с комментарием, числом и булевым значением. Строки могут начинаться с export, имя от значения отделяется = или :, значение можно взять в одинарные или двойные кавычки.
- 2
Проверьте три переключателя
В Advanced options включаются и выключаются определение типов, вложение по точкам (вместе с разделителем) и сохранение комментариев в $comments. Значения по умолчанию соответствуют распространённой практике: типы определяются, ключи вкладываются, комментарии сохраняются.
- 3
Нажмите «Конвертировать»
Строки NAME=value читаются по порядку: ведущий export отбрасывается, комментарий # после значения удаляется, а # внутри кавычек или сразу после знака равенства остаётся частью значения. Внешние кавычки снимаются: внутри двойных кавычек \n и \" превращаются в перевод строки и кавычку, текст в одинарных кавычках сохраняется в точности как написан, а значение в кавычках может занимать несколько строк. Строки # прямо над переменной привязываются к ней. Если потом переключить опцию, результат пересчитается сразу.
- 4
Заберите JSON
Скопируйте JSON иконкой копирования или скачайте файлом .json. Для обратного пути иконка смены направления открывает JSON в Env.
Источники
- The Twelve-Factor App — Config
Широко цитируемая методология, популяризировавшая хранение конфигурации в переменных окружения — именно на этом соглашении строятся .env файлы.
- dotenv (motdotla) — README
Эталонная реализация и фактическая спецификация синтаксиса .env файлов: строки KEY=VALUE, комментарии # и значения в кавычках.
- RFC 8259 — The JSON Data Interchange Format
Спецификация IETF для формата JSON, который производит этот инструмент.
Связанные инструменты
JSON в Env
Конвертируйте объект JSON обратно в формат .env KEY=VALUE, с разворачиванием ключей с точками и восстановлением комментариев.
Properties в JSON
Конвертируйте файл Java .properties в JSON: комментарии над ключами сохраняются в объекте $comments.
JSON Formatter
Вставьте необработанный JSON и мгновенно получите отформатированный, подсвеченный и провалидированный результат.
YAML в JSON
Конвертируйте конфигурационные файлы YAML в JSON и обратно — ещё одна распространённая пара форматов конфигурации.
Env в JSON — часто задаваемые вопросы
- Что парсер делает с export и кавычками?
- Префикс export в начале строки отбрасывается. У значения в одинарных или двойных кавычках снимается одна пара совпадающих внешних кавычек, а кавычки внутри значения сохраняются — так NAME="My App" даёт строку My App.
- Попадает ли содержимое .env на сервер?
- Нет. Разбор выполняется в браузере на JavaScript, сетевых запросов с содержимым файла нет — а это важно, ведь в .env обычно хранятся API-ключи и пароли к базам данных.
- Что происходит с комментариями #?
- Те, что описывают переменную, сохраняются: одна или несколько строк # прямо над KEY=value попадают в $comments под этим ключом. Заголовок раздела, после которого идёт пустая строка, ни к какой переменной не относится и в JSON не появляется; пустые строки тоже не записываются. Чтобы отбросить все комментарии, выберите для Comments значение «Ignore» в Advanced options.
- Почему 007 и 1.0 остались строками?
- При включённом Infer types (по умолчанию) булевыми становятся только точные true и false, а числами — обычные десятичные записи вроде 5432. Значения, которые при обратной записи изменились бы, например 007 или 1.0, остаются строками. Выключите Infer types, чтобы всё осталось текстом.
- Как получить вложенный JSON из ключей с точками?
- Включите «Dotted keys → nested» (разделитель по умолчанию — «.»): APP.CACHE.TTL=60 станет { "APP": { "CACHE": { "TTL": 60 } } }. Без этого переключателя ключ с точками останется одним плоским полем.
- Что будет, если ключ одновременно и значение, и родитель?
- Если в файле есть APP=1 и APP.PORT=80, а вложение включено, конвертер остановится с ошибкой конфликта ключей, а не потеряет молча одно из значений. Отключите вложение — и оба ключа останутся плоскими.
- Зачем вообще переводить .env в JSON?
- Файл .env — плоский список пар KEY=VALUE для переменных окружения процесса (см. раздел о конфигурации в The Twelve-Factor App), а JSON поддерживает вложенные структуры и нативные типы. В JSON значения из .env удобно просматривать и сравнивать как структурированные данные или передавать инструментам, которые принимают только JSON.