.env en JSON

Convertissez des fichiers .env en JSON, et inversement

À propos de l’outil .env en JSON

L’outil .env en JSON convertit un fichier .env en objet JSON, et un objet JSON en lignes .env. Il suit les règles de la bibliothèque dotenv : export facultatif, KEY=value ou KEY: value, guillemets simples gardés à la lettre, guillemets doubles qui changent \n en saut de ligne, accents graves, valeurs entre guillemets sur plusieurs lignes et commentaires # hors des guillemets. Par défaut, chaque valeur reste une chaîne ; des options donnent des nombres, true, false et null typés, et développent les références ${VAR}. Les lignes qui ne sont pas des variables sont signalées par leur numéro. Les deux sens fonctionnent dans votre navigateur.

Exemple

Un fichier .env avec export, un commentaire, un commentaire en fin de ligne et une ligne qui n’est pas une variable, converti avec les deux options décochées ; la ligne sous le JSON est la note que la page affiche :

.env

export APP_NAME="My App"
PORT=3000
# database
DB_URL=postgres://localhost/app # local only
GREETING="Hello\nWorld"
RAW='$HOME stays'
not a variable

JSON

{
  "APP_NAME": "My App",
  "PORT": "3000",
  "DB_URL": "postgres://localhost/app",
  "GREETING": "Hello\nWorld",
  "RAW": "$HOME stays"
}

5 variables — la ligne 7 n’est pas de la forme KEY=value et a été ignorée

Comment convertir un fichier .env en JSON

  1. 1Collez le contenu de votre .env, ou un objet JSON, dans « Entrée ».
  2. 2Cochez « Convertir les nombres, true/false et null en types JSON » ou « Développer les références ${VAR} » si vous en avez besoin.
  3. 3Cliquez sur « .env en JSON », ou sur « JSON en .env » pour l’autre sens.
  4. 4Cliquez sur « Copier », ou sur « Télécharger » : env.json pour du JSON, variables.env pour des lignes .env (renommez-le en .env).

Formats et limites

Entrée
Texte .env, ou objet JSON
Sortie
Objet JSON avec une indentation de 2 espaces, ou lignes .env
Clés répétées
La dernière définition l’emporte

Où votre fichier est traité

Les deux sens fonctionnent dans votre navigateur ; les variables que vous collez, secrets compris, ne sont pas envoyées, et le résultat n’est affiché que sur cette page. Si une erreur se produit, par exemple un JSON non valide, son message nous est signalé, épuré des passages entre guillemets, avec le nom de l’outil et la version du navigateur : ne mettez donc pas de secret dans les noms de clés.

Questions fréquentes

Les références ${OTHER_VAR} sont-elles développées ?

Oui, quand « Développer les références ${VAR} » est cochée : ${VAR}, ${VAR:-default} et $VAR prennent la valeur d’une variable définie plus haut dans le fichier, comme le fait dotenv-expand, et \$ garde un signe dollar littéral. Avec l’option cochée, les valeurs entre guillemets simples sont développées elles aussi.

Les nombres et les booléens sont-ils typés ?

Non, pas par défaut, car les valeurs d’un .env sont du texte. Cochez « Convertir les nombres, true/false et null en types JSON » : 3 000 devient un nombre et true, false et null deviennent des valeurs JSON, tandis que 007 et 1.10 restent des chaînes, car un nombre les changerait.

Les commentaires sont-ils conservés ?

Non. Une ligne qui commence par #, ou un # après une valeur sans guillemets, est un commentaire et disparaît : JSON en .env ne peut donc pas le rétablir ; un # entre guillemets reste dans la valeur. Une ligne qui n’est ni un commentaire ni une variable est signalée par son numéro.

JSON en .env accepte-t-il les objets imbriqués ?

Oui. Un objet ou un tableau imbriqué est écrit en texte JSON entre guillemets, et chaque valeur reçoit les guillemets qui permettent à dotenv de la relire sans changement ; une valeur qui mêle ', ", \ et ` à la fois est refusée, car aucune forme de guillemets .env ne peut la contenir, et null donne une valeur vide. Les clés ne peuvent contenir que des lettres, des chiffres, _, . et -.