Aller au contenu
4all.tools

Convertissez JSON et YAML localement

Convertissez du JSON strict en YAML ou un sous-ensemble YAML compatible avec JSON en JSON, en conservant l’ordre des membres et l’écriture numérique dans le navigateur.

Espace de travail de l’outil

JSON → YAML : choisissez l’écriture des chaînes de caractères

Choisissez JSON → YAML, collez du JSON strict ou chargez un fichier .json local, puis appuyez sur Convertir. Sélectionnez 2 ou 4 espaces et des chaînes de caractères entre guillemets (par défaut) ou des blocs littéraux multilignes. La conversion ne commence jamais automatiquement et l’original reste dans l’éditeur.

{"code":"00123","active":true,"missing":null,"items":[1,"yes",false,null,{},[]],"message":"Hello\nWorld\n"}

La sortie par défaut met toutes les clés et chaînes de caractères entre guillemets. Le mode littéral utilise un bloc seulement s’il conserve exactement la chaîne de caractères ; sinon il garde les guillemets. Il conserve les conteneurs vides, tableaux hétérogènes, chaînes de caractères et l’ordre des membres. JSONC, JSON5, clés en double, réparation et détection automatique du format sont hors de cet outil.

YAML → JSON : interprétez les données, pas leur présentation

Choisissez YAML → JSON, collez du texte ou chargez un fichier .yaml ou .yml, sélectionnez 2 ou 4 espaces et appuyez sur Convertir. Les extensions ne distinguent pas la casse ; le MIME ne détermine pas l’acceptation. Les fichiers doivent être en UTF-8 strict. Un BOM UTF-8 initial est retiré avec un avertissement ; deux BOM initiaux sont rejetés. Les sauts LF/CRLF/CR originaux restent dans le modèle d’entrée.

# Exemple local ; ce commentaire est omis du JSON
code: "00123"
active: true
missing:
items: [1, "yes", false, null, {}, []]
message: |
  Hello
  World

missing: est un null implicite. "00123" entre guillemets est une chaîne de caractères ; 00123 plain est rejeté comme nombre hors du profil. yes plain et les dates comme 2026-10-04 sont des chaînes de caractères ; true est booléen. Une clé 1 sans guillemets n’est pas une chaîne de caractères et est rejetée : écrivez "1".

YAML 1.2.2, sous-ensemble compatible avec JSON

Ce n’est pas un éditeur YAML général. Il accepte un document, des objets avec des clés textuelles, des tableaux, des chaînes de caractères, des nombres finis avec la grammaire JSON, booléens, null, collections block/flow et blocs littéraux/repliés. Une directive %YAML 1.2 valide avec marqueur de début du document est admise. Tags explicites, anchors, aliases, clés merge sans guillemets, doublons, clés non chaîne de caractères, plusieurs documents et autres directives sont rejetés. Les erreurs distinguent une syntaxe invalide d’une construction YAML valide hors du sous-ensemble.

Les nombres comme 0x10, +1 ou .inf sont hors du profil numérique. Utilisez une écriture JSON admise si elle convient, ou des guillemets pour obtenir une chaîne de caractères ; le convertisseur ne répare pas le texte. 1_000 reste une chaîne de caractères selon la classification admise, sans coercition numérique. Un overflow non fini est rejeté.

Écriture numérique et aller-retour

Les lexèmes comme -0, 1.0, 1e0, 9007199254740993, 0.1234567890123456789 et 1e-400 conservent leur écriture. Consultez les avertissements de précision : d’autres consommateurs peuvent arrondir un grand entier ou une décimale précise, ou transformer un nombre avec underflow en zéro. Conserver le texte ne garantit pas la précision d’un autre programme.

L’aller-retour conserve valeurs interprétées, chaînes de caractères, ordre des tableaux, noms/ordre littéraux des membres et lexèmes numériques dans le sous-ensemble. Les commentaires YAML sont omis avec un compte exact. Style, commentaires, directives, guillemets et disposition des blocs ne sont pas reconstruits. Les blocs littéraux/repliés donnent d’abord leur valeur chaîne de caractères ; JSON échappe ensuite cette valeur.

Export complet, aperçu et limites locales

Copier et télécharger exportent toute la sortie actuelle même si l’aperçu en lecture seule montre seulement 20 000 unités UTF-16. Après un échec du presse-papiers, une action explicite affiche le texte complet pour une copie manuelle. Les fichiers sont converted.yaml (application/yaml) ou converted.json (application/json), en UTF-8 sans BOM avec LF final.

Les limites sont 1 000 000 unités UTF-16 et 4 000 000 octets UTF-8 d’entrée ; 2 000 000 unités et 8 000 000 octets de sortie ; un fichier de 4 000 000 octets au maximum ; 250 000 unités source ou décodées par scalaire/clé ; 100 conteneurs imbriqués ; 100 000 valeurs ; 300 000 tokens de syntaxe ; 4 000 000 unités de travail propre ; 100 détails de diagnostic retenus ; et 10 000 ms par opération Worker. UTF-16 peut limiter avant le plafond d’octets. Toutes les limites s’appliquent ensemble ; les positions détaillées sont bornées, mais les comptes d’avertissements restent visibles.

Le traitement utilise un Worker local annulable. Texte/fichiers ne sont ni envoyés, ni enregistrés dans le navigateur, ni ajoutés aux URL. Modifier l’entrée, options/mode, exemple, effacer ou choisir un fichier invalide sortie et export. Une limite, erreur, annulation ou timeout ne produit aucune sortie partielle et ne réactive aucun résultat antérieur. Effacer conserve le sens et rétablit les options par défaut. Annuler conserve l’entrée pour réessayer. Sans JavaScript ou Worker local, la conversion est indisponible.