100 % local — seus dados nunca saem do seu navegador

.env para JSON — ajustes que o seu código lê

Transforme um arquivo .env em JSON. Aspas, comentários e export são tratados: os ajustes chegam como objeto que seu app ou sua CI lê direto.

Instantâneo Privado Zero cookies
Indentação

Entrada .env

Saída JSON

O que esta ferramenta faz

Um arquivo .env vira um objeto JSON plano.

# serviço
export PORT=8080
NAME="Ada Lovelace"
EMPTY=
{
  "PORT": "8080",
  "NAME": "Ada Lovelace",
  "EMPTY": ""
}

As linhas de comentário e as vazias são puladas, um export no começo é removido, e as aspas em volta de um valor vão junto. Entre aspas duplas, \n e \t viram quebra de linha e tabulação; entre aspas simples tudo fica literal, como num shell.

Uma variável posta duas vezes é recusada

PORT=8080
PORT=3000
Duplicate variable "PORT" on line 2: it already has a different value

Um shell fica com a última atribuição e não diz nada: o primeiro valor simplesmente sumia. Num .env que foi juntado, editado e copiado entre ambientes, esse silêncio sai caro: você lê o arquivo, vê PORT=8080 no topo, e o processo roda na 3000. Agora a ferramenta para e nomeia a variável e a linha. Duas atribuições idênticas não confessam nada e continuam passando. Era um defeito real, encontrado ao escrever esta página e corrigido.

Tudo é string

ID=007
ACTIVE=true
COUNT=3
{
  "ID": "007",
  "ACTIVE": "true",
  "COUNT": "3"
}

Uma variável de ambiente é texto: é o que o sistema guarda e o que o process.env devolve. Tipar COUNT como número aqui seria um palpite, e tipar ID assim custaria os zeros dele. A conversão guarda o texto, e a tipagem fica onde o sentido é conhecido — no seu código.

O que o formato não carrega

  • Expansão. PATH=$HOME/bin continua $HOME/bin. O que $HOME vale depende de uma máquina que esta página não vê.
  • Aninhamento. .env é uma lista plana de nomes e valores; não há seções nem estrutura a encontrar.
  • Um comentário depois de um valor entre aspas. A="a #b" mantém a cerquilha, que está dentro das aspas. Depois de um valor nu, # abre um comentário e é cortado.
  • Qualquer nome. Um nome é feito de letras, algarismos, _ e ., e não começa por algarismo — a regra que o próprio shell aplica. O resto é recusado com o nome dito, em vez de escrito num JSON que nenhum .env conseguiria receber de volta.

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 uma variável posta duas vezes é recusada?
Porque um dos dois valores sumia sem uma palavra. Um shell fica com a última atribuição, então a ferramenta fazia o mesmo — e um `.env` com `PORT` na linha 3 e de novo na 40 costuma denunciar uma junção malfeita, não uma decisão. Agora a conversão para e nomeia a variável e a linha. Repetir o mesmo valor não muda nada, então isso continua passando.
Por que `PORT=8080` é uma string no JSON?
Porque uma variável de ambiente é texto — é tudo o que o sistema operacional guarda. `8080`, `true` e `007` entram como strings e saem como strings; `process.env.PORT` também é uma. Um conversor que as tipasse decidiria por você e, de passagem, transformaria num número um identificador com zeros.
`$HOME` é expandido?
Não. `PATH=$HOME/bin` devolve a string `$HOME/bin`, exatamente como está escrita. A expansão é tarefa do shell, depende de um ambiente que esta página não enxerga, e adivinhá-la colocaria no seu JSON um valor que nunca existiu no seu arquivo.

Conversores relacionados