Collez du JSON ou du YAML, choisissez le sens et lisez l’autre format dans le même champ. L’analyse se fait dans le navigateur : les commentaires et la mise en forme d’origine ne sont pas conservés et les erreurs sont signalées avec leur position.
Fonctionne localement dans votre navigateurUn seul champ convertit dans les deux sens. YAML → JSON lit l’entrée comme du YAML et affiche le JSON correspondant ; JSON → YAML lit du JSON strict et écrit du YAML. Ces deux boutons sont les seuls contrôles, le sens est donc toujours explicite.
Les deux analyseurs sont fournis avec la page et s’exécutent dans cet onglet. Rien n’est envoyé, la conversion fonctionne hors connexion une fois la page chargée et le texte reste sur votre machine.
JSON → YAML utilise l’analyseur JSON du navigateur, l’entrée doit donc être du JSON valide : clés entre guillemets doubles, sans commentaires, sans virgule finale et sans valeur non citée. Le YAML est écrit par le générateur YAML 1.2 fourni avec la page : indentation de deux espaces, scalaires de bloc « |-» pour les chaînes qui contiennent des sauts de ligne, et guillemets uniquement là où la valeur changerait de type.
YAML → JSON lit le schéma de base 1.2. true et false sont des booléens, alors que yes, no, on et off restent du texte ; 0x1F et 0o17 sont des nombres et 1_000 reste une chaîne ; une date comme 2024-01-02 reste la chaîne « 2024-01-02 » au lieu de devenir un horodatage. Le résultat est du JSON indenté de deux espaces.
Les alias et les clés de fusion sont résolus à la lecture. Une table qui partage « base: &b » avec « <<: *b » arrive en JSON avec les clés héritées écrites en clair ; aucune clé « << » littérale ne subsiste. Le JSON ne sait pas exprimer d’ancre : un aller-retour redonne donc un objet ordinaire.
Les documents séparés par « --- » sont convertis un par un, dans l’ordre. Trois documents donnent un tableau JSON de trois entrées et la ligne d’état indique « 3 documents » ; si l’un d’eux ne peut pas être lu, le message donne son numéro et le champ de résultat est vidé.
Les clés répétées ne sont pas traitées de la même façon : JSON garde silencieusement la dernière valeur, tandis qu’un YAML contenant une clé en double est refusé avec un message. Les entiers hors de ±9007199254740991 ne peuvent pas être stockés exactement en JavaScript : ils sont arrondis à la valeur représentable la plus proche et la ligne d’état indique combien ; .inf, -.inf et .nan n’existent pas en JSON et deviennent null, là aussi avec un avertissement.
Une erreur de syntaxe vide le résultat précédent au lieu de le laisser à l’écran : une ancienne conversion ne peut donc pas être copiée par erreur, et un champ vide reçoit une consigne plutôt qu’une conversion. Les résultats de plus d’environ 100 000 caractères s’affichent sans coloration syntaxique : le texte est complet, et c’est en renonçant aux couleurs qu’un document de plusieurs centaines de kilo-octets ne fige pas l’onglet.