100 % local — vos données ne quittent jamais votre navigateur

YAML en JSON — les longs identifiants exacts

Convertissez du YAML en JSON. Les grands entiers gardent tous leurs chiffres et plusieurs documents deviennent un tableau, prêt pour une API.

Instantané Privé Zéro cookie
Indentation

Entrée YAML

Sortie JSON

Ce que fait cet outil

YAML est un sur-ensemble de JSON : l’essentiel de la conversion est donc sans histoire. Les dictionnaires deviennent des objets, les séquences des tableaux, les scalaires des chaînes, des nombres, des booléens ou null.

Ce qui suit est l’endroit où ça cesse d’être sans histoire.

Les identifiants longs gardent leurs chiffres

id: 12345678901234567890
{ "id": 12345678901234567890 }

Cela paraît banal, et c’est justement le but. Un nombre JSON est un flottant double précision et porte une quinzaine de chiffres ; un identifiant de vingt chiffres — un flocon Twitter, un bigint PostgreSQL — ressortait autrefois comme un autre nombre, en silence. Les chiffres sont maintenant lus exactement et réécrits tels quels.

Les ancres sont dépliées, parce que JSON ne sait pas les porter

defaults: &d
  retries: 3
web:
  <<: *d

devient deux copies de retries: 3. JSON n’a pas la notion d’une valeur présente à deux endroits : le partage ne peut pas survivre à la traversée. La sortie est plus grosse que l’entrée, rien n’est perdu — mais la relation, si, et cela mérite d’être su avant de convertir un fichier bâti sur des ancres puis de le reconvertir.

Plusieurs documents deviennent un tableau

--- sépare les documents. JSON n’a pas de séparateur : un flux de trois documents devient donc un tableau de trois valeurs. Un document unique n’est pas emballé — vous obtenez l’objet.

Les nuls, tous les trois

~, null et une valeur vide signifient tous null en YAML, et tous trois deviennent null. C’est un des rares endroits où JSON est plus simple que YAML, et non l’inverse.

Ce que cette conversion ne peut pas trancher à votre place

yes est lu comme la chaîne "yes", parce que c’est ce que dit YAML 1.2. Un fichier écrit pour PyYAML, qui applique YAML 1.1, voulait dire le booléen vrai.

Rien dans le fichier ne dit quelle version son auteur avait en tête. Si votre YAML vient d’un outil Python et qu’un yes, no ou on nu compte, mettez-le entre guillemets à la source — et sachez que l’ambiguïté est dans le fichier, pas dans le convertisseur.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi mon identifiant de 20 chiffres ressortait-il faux ?
Parce qu’il passait par un flottant double précision, qui porte une quinzaine de chiffres. `12345678901234567890` ressortait `12345678901234567000` — un autre nombre, sans rien pour vous prévenir. On peut demander au lecteur YAML de garder les grands entiers exacts : c’est désormais le cas, et les chiffres survivent à la conversion.
Qu’advient-il de mes ancres et de mes alias ?
Ils sont résolus : chaque `*alias` devient une copie de ce que son `&ancre` portait, et les clés de fusion `<<:` sont appliquées. JSON n’a aucun moyen d’exprimer un partage : ce n’est donc pas un choix, c’est la seule traduction fidèle. Le résultat est plus gros que le YAML, et c’est le prix honnête.
Mon fichier contient plusieurs documents. Qu’est-ce que j’obtiens ?
Un tableau JSON, une entrée par document. `---` sépare les documents YAML et JSON n’a pas d’équivalent ; le tableau est la seule forme qui les garde tous. Un fichier à document unique vous rend l’objet lui-même, pas un tableau d’un élément.

Convertisseurs associés