Конвертер .env в JSON

Преобразуйте содержимое .env файла в JSON с автоопределением типов, вложенными ключами и комментариями #, привязанными к переменной под ними. Работает полностью в браузере.

Вставьте содержимое .env — и в браузере сразу получится JSON. По умолчанию числа и булевы значения распознаются (DEBUG=true становится настоящим boolean, а не строкой "true"), ключи с точками вроде DB.HOST превращаются во вложенные объекты, а комментарий #, написанный прямо над переменной, переносится в поле $comments этой переменной. Каждую из этих функций можно отключить. На сервер ничего не загружается — конвертация идёт целиком на стороне клиента.

.env Ввод

Загрузить

Дополнительные параметрыКонвертироватьОчистить

JSON Вывод

Результат появится здесь...

КопироватьСкачать

Результат появится здесь...

О конвертере .env в JSON

Файл .env — это обычный текст KEY=VALUE: писать его легко, а вот отдать коду, который ждёт структурированную конфигурацию, неудобно. Инструмент понимает синтаксис .env — комментарии #, значения в кавычках, разделители = и :, префикс export — и выдаёт JSON-объект, который можно сразу подставить в загрузчик конфигурации, тестовую фикстуру или изучить при отладке. Результатом управляют три переключателя: определение типов превращает строки, похожие на числа и булевы значения, в настоящие типы JSON; вложение по точкам разворачивает FEATURE.CACHE.TTL в { "FEATURE": { "CACHE": { "TTL": ... } } }; режим комментариев сохраняет или отбрасывает строки #, которыми был задокументирован исходный файл.

Вам также может понадобиться

JSON в Env

Конвертируйте объекты JSON в формат .env KEY=VALUE с разворачиванием ключей с точками.

Открыть инструмент

Properties в JSON

Конвертируйте файлы Java .properties в JSON с вложенными ключами через точку и определением чисел и булевых значений.

Открыть инструмент

JSON Форматер и Валидатор

Форматируйте, проверяйте и визуализируйте данные JSON.

Открыть инструмент

YAML в JSON

Преобразовать YAML в JSON или JSON в YAML.

Открыть инструмент

Как конвертировать .env в JSON

  1. 1

    Скопируйте .env в поле ввода

    Вставьте файл целиком или нажмите иконку колбы — появится пример с комментарием, числом и булевым значением. Строки могут начинаться с export, имя от значения отделяется = или :, значение можно взять в одинарные или двойные кавычки.

  2. 2

    Проверьте три переключателя

    В Advanced options включаются и выключаются определение типов, вложение по точкам (вместе с разделителем) и сохранение комментариев в $comments. Значения по умолчанию соответствуют распространённой практике: типы определяются, ключи вкладываются, комментарии сохраняются.

  3. 3

    Нажмите «Конвертировать»

    Строки NAME=value читаются по порядку: ведущий export отбрасывается, комментарий # после значения удаляется, а # внутри кавычек или сразу после знака равенства остаётся частью значения. Внешние кавычки снимаются: внутри двойных кавычек \n и \" превращаются в перевод строки и кавычку, текст в одинарных кавычках сохраняется в точности как написан, а значение в кавычках может занимать несколько строк. Строки # прямо над переменной привязываются к ней. Если потом переключить опцию, результат пересчитается сразу.

  4. 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, который производит этот инструмент.

Связанные инструменты

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.