100 % local — seus dados nunca saem do seu navegador

JSON para .env — pronto para Docker e CI

Converta um objeto JSON plano num arquivo .env. Os nomes são verificados e os valores ganham aspas onde o shell exige, pronto para o Docker.

Instantâneo Privado Zero cookies

Entrada JSON

Saída .env

O que esta ferramenta faz

Um objeto JSON plano vira um arquivo .env, uma atribuição por linha.

{ "PORT": 3000, "NAME": "meu app", "DEBUG": true }
PORT=3000
NAME="meu app"
DEBUG=true

Os valores guardam seu texto: um número, um booleano e uma string com os mesmos caracteres saem iguais, porque um arquivo .env não contém senão texto.

Um nome que o leitor recusaria agora interrompe a conversão

Os nomes de variável são conferidos antes de qualquer escrita: letras, dígitos, _ e ., nunca um dígito à frente. minha chave e 2fa são recusados, com a chave culpada nomeada.

Isso merece ser dito sem rodeios, porque é um defeito que esta ferramenta tinha. Ela aceitava qualquer chave e a escrevia, de modo que {"minha chave": "1"} produzia:

minha chave=1

uma linha que o leitor .env deste mesmo site recusa, e que um shell também não tomaria por atribuição. Um conversor cuja saída o seu próprio inverso recusa é um conversor com defeito. Ele foi encontrado ao escrever esta página e corrigido.

Aspas só onde fazem falta

Um valor recebe aspas quando deixá-lo nu mudaria onde ele termina: contém espaço, um # que abriria um comentário, uma aspa ou uma barra invertida.

{ "GREETING": "olá a todos", "NOTE": "a # b" }
GREETING="olá a todos"
NOTE="a # b"

Entre aspas, uma quebra de linha real é escrita \n: uma variável cabe numa linha, e uma quebra no meio de um valor encerraria ali a atribuição.

O que um arquivo .env não consegue carregar

O aninhamento não cabe: {"db": {"host": "x"}} é recusado, com db nomeado, em vez de inventado como DB_HOST ou db.host. Qual dos dois seu aplicativo espera, o JSON não diz.

E null vira um valor vazio, KEY=, que é relido como string vazia. Essa distinção simplesmente não existe no formato — bom saber antes de contar com ela.

Privado por padrão

Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.

Perguntas frequentes

Por que minha chave foi recusada?
Porque não é um nome que um arquivo `.env` possa carregar. Letras, dígitos, `_` e `.`, nunca começando por dígito: todo o resto, como `minha chave` ou `2fa`, é recusado com a chave citada na mensagem. A razão é crua: `minha chave=1` não é uma atribuição, e nenhum shell ou leitor dotenv vai tratá-la como tal.
Quando os valores recebem aspas?
Só quando seriam mal relidos: espaço, `#`, aspa ou barra invertida no valor. `PORT=3000` fica nu, `NAME="meu app"` leva aspas porque o espaço cortaria o valor cedo, e uma quebra de linha é escrita `\n` entre as aspas para a variável caber numa linha.
Nomes em minúsculas funcionam?
Sim. As maiúsculas são convenção, não regra, e esta ferramenta não reescreve suas chaves para impô-la: renomear `port` para `PORT` devolveria um arquivo que já não bate com o código que o lê. Um nome é aceito ou recusado por ser válido, não pelo modo como está escrito.

Conversores relacionados