TanodTools
FR

Convertir JSON en YAML

Collez du JSON et obtenez un YAML propre, avec les chaînes ambiguës entre guillemets pour qu'elles gardent leur sens.

Fonctionne entièrement dans votre navigateur

Indentation
Options

Entrée jusqu'à 10 Mo environ. Seules les données sont converties : le JSON n'a pas de commentaires, le YAML n'en contiendra donc aucun.

Comment convertir du JSON en YAML

  1. Collez votre JSON dans la zone de saisie, ou cliquez sur Insérer un exemple.
  2. Choisissez une indentation de 2 ou 4 espaces, et activez Trier les clés pour classer chaque objet par ordre alphabétique.
  3. Si le JSON n'est pas valide, la ligne et la colonne de l'erreur s'affichent. Sinon, copiez le YAML ou téléchargez-le en fichier .yaml.

Transformer du JSON en YAML lisible

Pour convertir du JSON en YAML, il faut d'abord savoir que le YAML est surtout une façon plus lisible d'écrire les mêmes données que le JSON. Les accolades et les guillemets laissent place à l'indentation et à des mots simples, c'est pourquoi la configuration de Kubernetes, de Compose ou des systèmes de CI est généralement écrite en YAML. À partir d'un JSON, comme une réponse d'API ou un manifeste généré, la conversion est mécanique, mais un détail demande de l'attention : le YAML déduit le type d'une valeur de son apparence.

En YAML, un true seul est un booléen, null est une valeur nulle et 1.0 est un nombre. Une chaîne JSON qui ressemble à l'une de ces valeurs, comme "null", "1.0" ou "0x1F", doit être mise entre guillemets dans le YAML, sinon elle changera de type à la lecture. Le convertisseur met précisément celles-ci entre guillemets, ainsi que les chaînes vides et les textes qui commencent par des symboles ayant un sens en YAML, puis il vérifie le résultat en le relisant.

Le texte sur plusieurs lignes devient un bloc littéral, bien plus facile à lire qu'une longue chaîne remplie de \n. Les objets et tableaux vides sont écrits {} et []. Comme le JSON n'a pas de commentaires, le YAML n'en contient aucun au départ ; vous pouvez ajouter les vôtres ensuite.

Astuces

Questions fréquentes

Mon JSON est-il envoyé sur un serveur ?

Non. Il est analysé et converti par du code qui s'exécute dans votre navigateur : rien de ce que vous collez ne quitte votre appareil.

Pourquoi certaines chaînes sont-elles entre guillemets ?

Un yes, null, 1.0, 012 ou 0x1F sans guillemets serait relu comme un booléen, une valeur nulle ou un nombre, et non comme la chaîne d'origine. Le convertisseur met ces chaînes (et les chaînes vides) entre guillemets pour que le YAML ait le même sens que le JSON.

Comment savoir si le YAML correspond bien au JSON ?

Après la conversion, la page relit le YAML avec un parseur YAML 1.2 et le compare à vos données. S'il y a la moindre différence, un avertissement s'affiche au-dessus du résultat.

Comment les chaînes sur plusieurs lignes sont-elles écrites ?

Une chaîne qui contient des sauts de ligne est écrite sous forme de bloc littéral (|), ce qui la garde lisible. Le texte sur une seule ligne reste sur une ligne, sauf si vous cochez l'option de retour à la ligne.

L'ordre de mes clés est-il modifié ?

Les clés gardent leur ordre, avec une particularité de JavaScript : les clés qui sont des nombres entiers, comme "1", sont placées en premier, dans l'ordre numérique. Cochez Trier les clés pour classer chaque niveau par ordre alphabétique.

Et les très grands nombres ?

Les entiers supérieurs à 9 007 199 254 740 991 sont écrits exactement tels que saisis, sans arrondi. Les nombres décimaux de plus de 17 chiffres significatifs environ sont arrondis à la valeur la plus proche qu'un double peut représenter.