SuperDevTools

Convertir YAML en JSON et valider du YAML

Conversion
Collez du YAML, déposez un fichier .yaml ou cliquez sur « Exemple ».
Taille du résultat
0
Documents
0
Clés
0
Profondeur
0

Tout se passe dans votre navigateur : votre texte n'est envoyé nulle part et n'est enregistré nulle part. Aucune étiquette n'exécute de code.

Un convertisseur YAML ↔ JSON qui vérifie aussi votre fichier

Le YAML sert surtout aux fichiers de configuration : services d'une application, chaîne d'intégration continue, paramètres d'un serveur, fichiers de traduction. Le JSON est le format qu'attendent les API et beaucoup de programmes. Cet outil passe de l'un à l'autre et signale les erreurs avec leur ligne et leur colonne, sans rien envoyer : l'analyse se fait dans votre navigateur.

Mode d'emploi

  1. Choisissez la conversion : « YAML → JSON », « JSON → YAML » ou « Formater le YAML » (réécriture propre du même fichier).
  2. Collez votre texte, cliquez sur « Ouvrir un fichier » ou sur « Exemple ».
  3. Réglez l'« Indentation du JSON » (2 espaces, 4 espaces, tabulation ou « Compact (une ligne) ») ou l'« Indentation du YAML » (2 ou 4 espaces).
  4. Lisez l'état : « YAML valide. », une liste d'avertissements, ou l'erreur avec un extrait surligné et le bouton « Aller à l'erreur ».
  5. Passez en « Arborescence » pour explorer les données, puis « Copier » ou « Télécharger ».

YAML et JSON comparés

Les deux formats décrivent les mêmes données. Le YAML remplace accolades et guillemets par l'indentation, le JSON écrit tout explicitement.

YAMLJSON obtenu
service: web"service": "web"
replicas: 2"replicas": 2
debug: false"debug": false
ports: puis - "8080:80""ports": ["8080:80"]

En mode « Compact (une ligne) », ces quatre lignes tiennent sur une seule ligne JSON de 64 caractères, sans aucune espace. Dans l'autre sens, l'outil écrit un YAML en style bloc et ne met des guillemets que si c'est nécessaire.

Les règles de syntaxe essentielles

  • Une clé est suivie de deux-points et d'une espace : nom: valeur.
  • L'imbrication se fait par l'indentation, avec des espaces seulement.
  • Un élément de liste commence par un tiret et une espace : - valeur.
  • | garde les retours à la ligne d'un texte, > les remplace par des espaces ; - retire le saut de ligne final, + garde toutes les lignes vides de la fin.
  • &nom pose une ancre, *nom la réutilise, <<: *nom fusionne un objet ; --- sépare plusieurs documents, que le JSON regroupe dans un tableau.
  • Un commentaire commence par une espace puis #.

Erreurs fréquentes et pièges

Une tabulation dans l'indentation est interdite : a: suivi d'une ligne qui commence par une tabulation donne « ligne 2, colonne 1 ». Une ligne décalée d'une espace casse la structure. Une valeur qui contient deux-points et une espace, comme titre: Note: important, est refusée colonne 12 : écrivez titre: "Note: important".

Le piège le plus connu est le « problème de la Norvège » : en YAML 1.1, pays: NO devient le booléen false, tout comme yes, no, on et off. L'outil suit YAML 1.2, la version actuelle : seuls true et false sont des booléens, NO reste le texte « NO ». Comme beaucoup de programmes lisent encore du YAML 1.1, un avertissement vous invite à mettre ces valeurs entre guillemets. D'autres avertissements signalent les clés en double (la dernière valeur l'emporte) et les nombres trompeurs : code_postal: 01000 devient 1000 (512 pour un lecteur YAML 1.1, qui lit un octal), version: 3.10 devient 3.1.

Sécurité

Ne chargez jamais un YAML d'origine inconnue avec un chargeur capable de créer des objets de programmation à partir des étiquettes : préférez toujours le chargeur « sûr » de votre langage. Ici, les étiquettes non standard sont seulement signalées, rien n'est exécuté, et les alias qui ajouteraient plus de 1 000 000 de nœuds (l'attaque dite « billion laughs ») arrêtent la lecture.

Questions fréquentes

Les commentaires passent-ils dans le JSON ?

Non, le JSON n'a pas de commentaires. « Formater le YAML » ne les garde pas non plus et remplace chaque alias par son contenu.

Pourquoi « 3.10 » est-il entre guillemets dans le YAML produit ?

Sans guillemets, 3.10 serait lu comme le nombre 3,1. L'outil met des guillemets à toute chaîne qui ressemble à un nombre, à un booléen ou à null.

Les très grands entiers restent-ils exacts ?

Oui. 12345678901234567890 est recopié chiffre pour chiffre, sans l'arrondi habituel des navigateurs.

Quelle taille de fichier est acceptée ?

Jusqu'à 20 Mo.