Convertisseur YAML et JSON

Convertissez localement un sous-ensemble de YAML 1.2 et JSON, en conservant les lexèmes numériques exacts et en refusant les structures non prises en charge plutôt que de perdre des données silencieusement.

Cette page présente les outils disponibles dans cette langue dans le périmètre actuel. Cela ne signifie pas que tous les outils du site sont traduits dans toutes les langues.

Le traitement reste dans votre navigateur, sans envoi de données ni enregistrement automatique. La lecture du fichier a son propre délai de 5 secondes, puis un seul worker annulable dispose de 5 secondes pour la conversion. Aucun lien n’est ouvert et aucun contenu n’est exécuté.

Entrée limitée à 256 KiB en UTF-8 et sortie à 2 MiB. Profondeur de 32 niveaux, 500 paires par table de correspondance, 30 000 nœuds CST ou AST et 120 000 lexèmes. Chaînes décodées : 65 536 unités UTF-16 ; lexèmes numériques : 1024 caractères. Ces limites ne couvrent pas toute la mémoire du navigateur.

Seul un sous-ensemble de YAML 1.2 est pris en charge : clés textuelles uniques, séquences, tables de correspondance et valeurs JSON. Les ancres, alias, tags explicites, directives, fusions, documents multiples, clés non textuelles, NaN et Infinity sont refusés. Utilisez des tables de correspondance explicites dans les séquences, par exemple [{a: b}].

Les lexèmes des nombres JSON grands, décimaux ou avec exposant restent exacts sans conversion en Number, y compris -0 et 1e400. Les formes numériques YAML prises en charge sont normalisées sous forme de texte ; les nombres hexadécimaux et octaux non signés sont convertis avec BigInt. yes, on et les dates sans guillemets restent du texte ; les règles YAML 1.1 ne sont pas activées.

Mode d’emploi

Choisissez le sens et la source de l’entrée. Collez du texte ou sélectionnez un fichier UTF-8 local, lancez la conversion, puis vérifiez l’aperçu et l’avertissement sur la perte du style. Copiez explicitement le résultat complet ou téléchargez converted.json ou converted.yaml. Un texte trop long ou un fichier illisible reste refusé jusqu’à la correction de cette même entrée ; modifier une autre option ne traite pas une ancienne valeur. Vous pouvez annuler la lecture ou la conversion ; le fichier original reste inchangé.

Exemple pratique

Le YAML n: 9007199254740993 produit du JSON avec ce nombre exact. Le JSON {"n":1e400,"name":"Français"} produit du YAML conservant 1e400, sans le convertir en Infinity. .5 devient 0.5 et 0o10 devient 8, tandis que yes et la date 2026-09-25 restent du texte.

Fonctionnalités prises en charge et limites

Les valeurs, l’ordre des tables de correspondance et des séquences, ainsi que les lexèmes de la grammaire numérique JSON sont conservés sans conversion en Number. Les formes numériques YAML prises en charge sont normalisées sous forme de texte et les nombres hexadécimaux et octaux non signés sont convertis avec BigInt. Les règles YAML 1.1 ne sont pas utilisées ; les commentaires, le style, les guillemets et les fins de ligne d’origine ne sont pas conservés. La sortie est en UTF-8 sans BOM, avec un LF final. Les alias, ancres, tags explicites dont !!str, directives, documents multiples, fusions, clés non textuelles ou dupliquées, NaN/Infinity et paires abrégées telles que [a: b] sont refusés ; utilisez des tables de correspondance explicites. Les fichiers doivent être en UTF-8 valide ; la BOM d’entrée est conservée, acceptée au début par YAML et refusée par JSON. L’aperçu est uniquement textuel et peut s’arrêter au milieu d’un caractère composé ; le presse-papiers peut modifier les fins de ligne selon le système. Aucune donnée n’est envoyée ni enregistrée, aucun contenu n’est exécuté et aucun lien n’est suivi.

Questions fréquentes

Le convertisseur prend-il en charge tout YAML ou répare-t-il automatiquement les documents ?

Non. Il convertit le sous-ensemble YAML 1.2 indiqué, représentable par des valeurs JSON, et refuse les entrées non prises en charge ou dépassant les limites. La conversion n’est ni un assainissement de sécurité ni une validation de schéma de données, et ne garantit pas qu’une autre application lise les grands nombres sans les arrondir. Le traitement limité ne garantit pas un plafond pour toute la mémoire du navigateur.

Outils associés