100 % local — vos données ne quittent jamais votre navigateur

JSON en .env — prêt pour Docker et la CI

Convertissez un objet JSON plat en fichier .env. Les noms sont vérifiés et les valeurs citées là où un shell l’exige, prêt pour Docker ou la CI.

Instantané Privé Zéro cookie

Entrée JSON

Sortie .env

Ce que fait cet outil

Un objet JSON plat devient un fichier .env, une affectation par ligne.

{ "PORT": 3000, "NAME": "mon appli", "DEBUG": true }
PORT=3000
NAME="mon appli"
DEBUG=true

Les valeurs gardent leur texte : un nombre, un booléen et une chaîne de mêmes caractères sortent pareils, parce qu’un fichier .env ne contient que du texte.

Un nom que le lecteur refuserait arrête maintenant la conversion

Les noms de variables sont vérifiés avant toute écriture : lettres, chiffres, _ et ., jamais un chiffre en tête. ma clé et 2fa sont refusés, avec la clé fautive nommée.

Cela mérite d’être dit franchement, car c’est un défaut qu’avait cet outil. Il acceptait n’importe quelle clé et l’écrivait, si bien que {"ma clé": "1"} produisait :

ma clé=1

une ligne que le lecteur .env de ce même site rejette, et qu’un shell ne prendrait pas non plus pour une affectation. Un convertisseur dont la sortie est refusée par son propre inverse est un convertisseur bogué. Le défaut a été trouvé en écrivant cette page, puis corrigé.

Des guillemets seulement là où il en faut

Une valeur est citée quand la laisser nue changerait l’endroit où elle s’arrête : elle contient une espace, un # qui ouvrirait un commentaire, un guillemet ou un backslash.

{ "GREETING": "bonjour tout le monde", "NOTE": "a # b" }
GREETING="bonjour tout le monde"
NOTE="a # b"

Entre guillemets, un vrai saut de ligne s’écrit \n : une variable tient sur une ligne, et un retour au milieu d’une valeur y terminerait l’affectation.

Ce qu’un fichier .env ne peut pas contenir

L’imbrication n’y a pas sa place : {"db": {"host": "x"}} est refusé, avec db nommé, plutôt qu’inventé en DB_HOST ou db.host. Lequel des deux votre application attend, le JSON ne le dit pas.

Et null devient une valeur vide, KEY=, qui se relit en chaîne vide. Cette distinction est tout simplement absente du format — à savoir avant de compter dessus.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi ma clé a-t-elle été refusée ?
Parce que ce n’est pas un nom qu’un fichier `.env` peut porter. Lettres, chiffres, `_` et `.`, jamais un chiffre en tête : tout le reste, comme `ma clé` ou `2fa`, est refusé avec la clé citée dans le message. La raison est brutale : `ma clé=1` n’est pas une affectation, et aucun shell ni lecteur dotenv ne la traitera comme telle.
Quand les valeurs sont-elles mises entre guillemets ?
Seulement quand elles seraient mal relues : espace, `#`, guillemet ou backslash dans la valeur. `PORT=3000` reste nu, `NAME="mon appli"` prend des guillemets car l’espace couperait la valeur, et un saut de ligne s’écrit `\n` entre les guillemets pour que la variable tienne sur une ligne.
Les noms en minuscules fonctionnent-ils ?
Oui. Les majuscules sont une convention, pas une règle, et cet outil ne réécrit pas vos clés pour l’imposer : renommer `port` en `PORT` vous rendrait un fichier qui ne correspond plus au code qui le lit. Un nom est accepté ou refusé selon sa validité, pas selon sa casse.

Convertisseurs associés