100 % local: tus datos nunca salen de tu navegador

JSON a .env — listo para Docker y tu CI

Convierte un objeto JSON plano en un archivo .env. Los nombres se comprueban y los valores se entrecomillan donde el shell lo exige.

Instantáneo Privado Cero cookies
Invertir: .env → JSON

Entrada JSON

Salida .env

Qué hace esta herramienta

Un objeto JSON plano pasa a ser un archivo .env, una asignación por línea.

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

Los valores conservan su texto: un número, un booleano y una cadena con los mismos caracteres salen igual, porque un archivo .env no contiene más que texto.

Un nombre que el lector rechazaría ahora detiene la conversión

Los nombres de variable se comprueban antes de escribir nada: letras, dígitos, _ y ., nunca un dígito al principio. mi clave y 2fa se rechazan, con la clave culpable nombrada.

Merece decirse sin rodeos, porque es un defecto que esta herramienta tenía. Aceptaba cualquier clave y la escribía, de modo que {"mi clave": "1"} producía:

mi clave=1

una línea que el lector .env de este mismo sitio rechaza, y que un shell tampoco tomaría por una asignación. Un conversor cuya salida rechaza su propio inverso es un conversor con un fallo. Se encontró al escribir esta página y se corrigió.

Comillas solo donde hacen falta

Un valor se entrecomilla cuando dejarlo desnudo cambiaría dónde termina: contiene un espacio, una # que abriría un comentario, una comilla o una barra invertida.

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

Entre comillas, un salto de línea real se escribe \n: una variable ocupa una línea, y un salto en medio de un valor terminaría allí la asignación.

Lo que un archivo .env no puede contener

El anidamiento no cabe: {"db": {"host": "x"}} se rechaza, con db nombrado, en vez de inventarse como DB_HOST o db.host. Cuál de los dos espera tu aplicación no lo dice el JSON.

Y null pasa a valor vacío, KEY=, que se relee como cadena vacía. Esa distinción sencillamente no existe en el formato, conviene saberlo antes de apoyarse en ella.

Privado por diseño

Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.

Preguntas frecuentes

¿Por qué se rechazó mi clave?
Porque no es un nombre que un archivo `.env` pueda llevar. Letras, dígitos, `_` y `.`, nunca empezando por un dígito: todo lo demás, como `mi clave` o `2fa`, se rechaza con la clave citada en el mensaje. La razón es cruda: `mi clave=1` no es una asignación, y ningún shell ni lector dotenv la tratará como tal.
¿Cuándo se entrecomillan los valores?
Solo cuando se releerían mal: espacio, `#`, comilla o barra invertida en el valor. `PORT=3000` queda desnudo, `NAME="mi app"` lleva comillas porque el espacio cortaría el valor, y un salto de línea se escribe `\n` entre las comillas para que la variable quepa en una línea.
¿Funcionan los nombres en minúsculas?
Sí. Las mayúsculas son una convención, no una regla, y esta herramienta no reescribe tus claves para imponerla: renombrar `port` a `PORT` te devolvería un archivo que ya no cuadra con el código que lo lee. Un nombre se acepta o se rechaza por ser válido, no por cómo va escrito.

Convertidores relacionados