Conversor de JSON a Env
Convierte un objeto JSON a formato .env CLAVE=VALOR, con aplanado de objetos anidados y reinserción de comentarios. Solo en tu navegador.
Convierte un objeto JSON en líneas .env que dotenv y otros cargadores leen al arrancar la aplicación. Cada ruta anidada se aplana en un nombre con puntos —db.host, por ejemplo—, los arrays quedan como una sola línea de texto JSON y true, false o los números se escriben como texto plano. Si el JSON trae el mapa $comments que genera Env a JSON, esos textos reaparecen como líneas # encima de cada variable. Como todo ocurre en tu navegador, las credenciales que haya en el JSON no salen de tu equipo.
Sobre el conversor de JSON a Env
Una variable de entorno solo guarda una cadena plana, así que pasar de JSON a .env es sobre todo una cuestión de nombres. Con el aplanado activado, cada ruta anidada se une con el separador elegido: { "app": { "cache": { "ttl": 60 } } } da app.cache.ttl=60, y la capitalización de cada clave se respeta tal cual viene en el JSON (nada se pasa a mayúsculas). Ojo con las shells: un nombre que contiene un punto no sirve como variable de shell, de modo que si un script va a hacer source del archivo conviene cambiar el separador a guion bajo y obtener app_cache_ttl. Si desactivas el aplanado, los objetos anidados no se despliegan: cada uno se escribe como una única línea de texto JSON a la derecha del signo igual.
También te puede interesar
Cómo convertir JSON a .env
- 1
Introduce un objeto JSON
Tiene que ser un objeto, no un array ni un valor suelto. Para probar antes, el icono del matraz carga un ejemplo plano y pequeño con una API key y un puerto.
- 2
Decide cómo se forman los nombres
En Opciones avanzadas: deja el punto para nombres al estilo dotenv como db.host, cambia a guion bajo si quieres nombres aptos para la shell como db_host, o desactiva el aplanado para que los objetos anidados se queden como texto JSON.
- 3
Genera las variables
Al pulsar Convertir, cada valor hoja se convierte en una línea NOMBRE=valor siguiendo el orden original de las claves, y las entradas de $comments aparecen como líneas # justo encima de la variable que describen. Los valores con saltos de línea, espacios al principio o al final o un # se escriben entre comillas (el salto de línea queda como \n), de modo que al volver a JSON se leen sin cambios.
- 4
Guarda el .env fuera del repositorio
Copia el texto o descarga un archivo .env; si contiene credenciales, no lo metas en el control de versiones. Con el icono de cambiar dirección puedes volver a convertirlo en JSON.
Referencias
- The Twelve-Factor App — Config
La metodología detrás de guardar la configuración como variables de entorno, que sigue el formato de salida de este conversor.
- dotenv (motdotla) — README
La implementación de referencia de la sintaxis de archivos .env, que describe cómo se escriben por convención los pares CLAVE=VALOR y los comentarios.
- RFC 8259 — The JSON Data Interchange Format
La especificación del IETF para el formato JSON de entrada que interpreta esta herramienta.
Herramientas para desarrolladores relacionadas
Env a JSON
Convierte un archivo .env a JSON, con inferencia de tipos, claves anidadas y conservación de comentarios.
JSON a Properties
Convierte un objeto JSON a formato .properties de Java, el flujo equivalente para archivos de properties.
Formateador de JSON
Pega JSON sin formato y obtén al instante una vista formateada, con resaltado de sintaxis y validada antes de convertirlo.
YAML a JSON
Convierte entre formatos de configuración YAML y JSON.
Preguntas frecuentes sobre JSON a Env
- ¿Se pasan los nombres de variable a mayúsculas?
- No. Cada clave conserva la capitalización que tiene en el JSON: { "db": { "host": "x" } } produce db.host=x, no DB.HOST. En Linux y macOS los nombres de las variables de entorno distinguen mayúsculas de minúsculas, así que escribe las claves del JSON tal y como las lee tu aplicación.
- ¿Puedo cargar el .env generado con source desde un script de shell?
- Solo si todos los nombres son identificadores válidos para la shell: letras, dígitos y guiones bajos, sin empezar por un dígito. dotenv para Node.js lee sin problema nombres con punto como db.host, pero la shell no los interpreta como asignaciones; para archivos que vayas a cargar con source, elige el guion bajo como separador.
- ¿Qué pasa con los arrays y los objetos anidados?
- Con el aplanado activo, cada objeto anidado se reparte en variables separadas con puntos, mientras que un array se guarda entero como una línea de texto JSON, por ejemplo tags=["a","b"]. Con el aplanado desactivado, también los objetos anidados se conservan completos como texto JSON.
- ¿En qué se convierten true, false y los números?
- En texto, porque un .env no tiene tipos: se escribe true, false o la cifra tal cual. Al recorrer el camino inverso, Env a JSON los recupera como booleanos y números de verdad si tiene activada la inferencia de tipos.
- ¿Se generan comentarios en el .env?
- Sí, cuando el JSON incluye un objeto $comments como el que produce Env a JSON: cada entrada se escribe como una línea # sobre la variable correspondiente. Si prefieres líneas NOMBRE=valor sin más, pon Comentarios en "Ignorar" dentro de Opciones avanzadas.
- ¿Mi JSON se envía a algún servidor?
- No. La conversión se ejecuta localmente en el navegador, algo importante cuando el .env va a contener claves de API o contraseñas de base de datos.
- ¿Por qué aparece un error de nombre de variable no válido?
- Un nombre vacío o que contiene espacios, =, :, #, comillas o una barra invertida no se puede volver a leer desde un archivo .env, así que la conversión se detiene e indica esa clave en lugar de escribir una línea rota. Cambia el nombre de la clave en el JSON o elige otro separador si fue el separador el que introdujo el carácter.