Comment convertir des réglages INI, JSON et YAML

Collez une configuration et choisissez l’un des cinq sens : INI vers JSON, INI vers YAML, INI vers TOML, JSON vers INI ou YAML vers INI. Convertir écrit le résultat sous les mesures, et Copier le résultat ou Télécharger l’enregistre en converted-config.json, .yaml, .toml ou .ini.

Tout s’exécute dans la page : aucun envoi, aucune requête vers ce site, et l’éditeur continue de fonctionner hors ligne. Le TOML n’est qu’une sortie : l’outil ne lit jamais de TOML.

  1. Collez la configuration dans l’éditeur ou cliquez sur Charger un exemple pour voir un petit exemple INI avec une section.
  2. Choisissez le sens : INI vers JSON, INI vers YAML, INI vers TOML, JSON vers INI ou YAML vers INI.
  3. Cliquez sur Convertir. Un éditeur vide, un document JSON ou YAML illisible ou une ligne INI qui n’est ni une paire clé = valeur ni un en-tête [section] arrêtent la conversion ; la ligne d’état indique la ligne et la colonne.
  4. Lisez les mesures (réglages de premier niveau, lignes d’entrée, taille d’entrée et de sortie) puis les remarques : sections fusionnées, clés répétées, valeurs nulles omises et valeurs que l’INI ne peut pas contenir.
  5. Cliquez sur Copier le résultat ou Télécharger pour récupérer le texte converti, et sur Effacer le texte avant le fichier suivant.

Ce que la conversion conserve et ce qu’elle ne peut pas conserver

Comment le côté INI est lu

La lecture suit les conventions des fichiers .ini : lignes clé = valeur ou clé: valeur, en-têtes [section] et commentaires avec ; ou #. Un commentaire en ligne ne commence que si le signe suit un espace : port=8080 ; note conserve donc 8080 et color=#ff0000 garde sa valeur. Les lignes vides sont ignorées et tout réglage qui suit un en-tête [section] appartient à cette section.

Une valeur peut être entre guillemets : les guillemets doubles gèrent les échappements de barre oblique inverse, guillemet, saut de ligne, retour chariot, tabulation et point de code, et les apostrophes sont littérales. Une clé contenant =, :, #, ; ou des crochets doit être mise entre guillemets de la même façon. Un en-tête peut porter un commentaire : [database] ; identifiants.

Les répétitions sont fusionnées plutôt que refusées : une seconde [database] rejoint la première, une clé répétée garde sa dernière valeur et une section portant le nom d’un réglage précédent le remplace. Chaque décision apparaît dans les remarques au lieu de modifier le fichier en silence.

Types de valeurs : ce qui reste du texte

Une valeur ne devient un nombre que si JavaScript réimprime ce nombre caractère par caractère. 8080, -7 et 3.5 sont des nombres ; 007, 0123456789, 1.50, +1, 1e3 et tout identifiant au-delà de 2^53 restent du texte : un code postal, un numéro de téléphone ou une version ne sont jamais réécrits. true et false deviennent des booléens, null, nil et ~ deviennent null, et yes, no, on et off restent du texte.

JSON et YAML conservent les types produits par leur propre analyseur. Vers l’INI, une chaîne qui serait relue comme nombre, booléen ou null est mise entre guillemets ("8080", "true", "null"), et une chaîne contenant un signe de commentaire, un espace au début ou à la fin ou un saut de ligne est citée avec échappements : l’aller-retour rend donc la même valeur avec le même type.

Ce que chaque cible conserve

INI vers JSON, YAML et TOML conservent la structure et les types. TOML n’a pas de valeur nulle : un réglage nul est donc omis et cité dans les remarques, et un nom que TOML lirait autrement est cité, par exemple [my section] devient ["my section"].

JSON vers INI et YAML vers INI aplatissent le document sur un seul niveau. Une liste ou un objet imbriqué est écrit en JSON compact (tags=["a","b"]) et signalé ; une liste ou une valeur unique à la racine ne peut pas s’écrire en INI et arrête la conversion ; un document vide signale que la sortie INI est vide.

L’INI n’a qu’un niveau de sections, une ligne de continuation indentée n’est pas lue, et les commentaires de l’entrée ne passent dans aucune sortie.

Outils récents :