Convertisseur JSON vers YAML

Convertir entre JSON et YAML en gardant l'ordre des clés

Convertir JSON en YAML et inversement, ordre des clés conservéDétection auto
Entrée JSON
Sortie YAML

Guide de l’outil

À propos de Convertisseur JSON vers YAML

Ce convertisseur transforme du JSON en YAML et du YAML en JSON, afin qu'une même configuration circule entre une charge utile d'API et un manifeste Kubernetes, un fichier Docker Compose, un workflow GitHub Actions ou un document OpenAPI, sans avoir à tout ressaisir.

La conversion s'effectue au fil de la frappe, l'ordre des clés est conservé exactement tel qu'il a été écrit, et l'indentation se règle sur 2 ou 4 espaces. Les erreurs de syntaxe indiquent la ligne et la colonne exactes.

Comment convertir JSON to YAML

  1. Collez votre JSON dans le panneau de saisie. Le résultat YAML apparaît immédiatement, sans aucun bouton à actionner.
  2. Utilisez le bouton d'inversion pour passer de YAML à JSON, par exemple pour fournir un manifeste à un script qui ne lit que du JSON.
  3. Choisissez une indentation de 2 ou 4 espaces selon la convention de votre dépôt. Les fichiers Kubernetes et GitHub Actions utilisent généralement 2.
  4. Si l'entrée est invalide, lisez la ligne et la colonne signalées, corrigez cet endroit, et la sortie se rafraîchit d'elle-même.

Dans quels cas s'en servir

  • Transformer une ressource JSON extraite par kubectl en un manifeste YAML lisible que vous pouvez versionner.
  • Convertir un bloc de service Docker Compose pendant que vous testez une configuration générée.
  • Faire passer une spécification OpenAPI entre ses formes JSON et YAML, puisque l'outillage de chaque côté privilégie l'une ou l'autre.
  • Réécrire en YAML attendu par le runner un fragment de workflow GitHub Actions produit en JSON.

Les règles YAML qui cassent les conversions

YAML 1.2 est proche d'un sur-ensemble de JSON, donc un JSON valide est en général un YAML valide. Les ennuis surviennent dans l'autre sens, là où YAML devine des types que JSON n'invente jamais.

  • Le Norway problem : NO, no, yes, on et off sont interprétés comme des booléens par les parseurs YAML 1.1, si bien que le code pays NO devient false. Mettez ces valeurs entre guillemets.
  • Zéros initiaux : une valeur comme 010 peut être lue comme un nombre octal au lieu d'une chaîne. Mettez entre guillemets les identifiants, codes postaux et références de pièces.
  • Numéros de version : un 1.10 non quoté devient le flottant 1.1 et le zéro final disparaît.
  • L'indentation doit se faire avec des espaces, jamais une tabulation, et chaque deux-points introduisant une valeur exige une espace après lui.

Questions fréquentes sur JSON vers YAML

Le convertisseur réordonne-t-il mes clés ?
Non. Les clés ressortent dans l'ordre où vous les avez fournies, ce qui garde des diffs compacts dans le gestionnaire de versions.
Que deviennent mes commentaires ?
JSON n'a pas de syntaxe de commentaire : la conversion JSON vers YAML ne peut donc pas en inventer, et la conversion YAML vers JSON supprime ceux que la source contenait. Conservez l'original si les commentaires comptent.
La sortie contiendra-t-elle des ancres et des alias ?
Non. Les structures répétées sont écrites intégralement, de sorte que n'importe quel parseur puisse lire le résultat sans prise en charge des alias.
Ma configuration est-elle envoyée quelque part ?
Non. L'analyse et la conversion se déroulent dans votre navigateur via js-yaml : rien de ce que vous collez ne quitte votre machine ni n'est conservé par wetool.site.
Pourquoi une valeur YAML change-t-elle de type après conversion ?
YAML devine le type des scalaires non quotés. Mettez la valeur entre guillemets dans la source YAML et elle se convertit en chaîne JSON.

JSON comparé à YAML

JSON est strict et sans ambiguïté, ce qui en fait un bon format d'échange, mais il ne connaît pas les commentaires et devient bruyant dès que l'imbrication est profonde. YAML se relit mieux en revue, au prix d'une inférence de types et d'une sensibilité à l'indentation. La plupart des équipes conservent leur configuration en YAML et échangent du JSON aux frontières : c'est exactement l'usage de cette conversion bidirectionnelle.

Liste de contrôle des guillemets avant de committer

La plupart des déploiements cassés par une conversion viennent d'une valeur qui a perdu son type. Passez la sortie YAML en revue en cherchant ces cas.

  • Les codes pays et codes de langue, en particulier NO, et toute valeur de deux lettres qui se lit comme un mot.
  • Les nombres qui sont en réalité des identifiants : numéros de compte, ports complétés par des zéros, tout ce qui commence par un zéro.
  • Les versions et tags d'image comme 1.10 ou 3.20, qui perdent leur zéro final dès qu'ils sont traités comme des flottants.