Guide
Erreurs YAML courantes
Six erreurs causent presque tous les échecs d’analyse. Voici ce que chacune signifie — et la correction exacte.
Par yamltojsonfree · Publié le · Mis à jour le
Pourquoi les erreurs YAML sont si difficiles à lire
YAML construit sa structure à partir de l’indentation ; quand quelque chose ne va pas, l’analyseur ne sait souvent pas ce qui ne va pas — seulement que la structure a cessé d’avoir un sens. C’est pourquoi un crochet non fermé à la ligne 12 est régulièrement signalé comme « mauvaise indentation » à la ligne 50 : l’analyseur a continué à consommer des lignes, en attendant un délimiteur fermant qui n’est jamais venu, et n’a abandonné que bien plus tard.
Les erreurs ci-dessous sont classées par leur vraie cause, pas par le message qu’imprime un analyseur. Si vous préférez les faire diagnostiquer automatiquement, collez votre document dans le validateur YAML ou le convertisseur YAML vers JSON — chacune de ces erreurs est détectée pour ce qu’elle est, avec la ligne, une explication claire et une correction suggérée.
Les six erreurs, en détail
Les six erreurs de syntaxe YAML les plus courantes sont : (1) une tabulation utilisée pour indenter, (2) une valeur sans guillemets contenant un deux-points, (3) un crochet, une accolade ou un guillemet non fermé, (4) une clé en double, (5) un alias vers une ancre inexistante, et (6) des clés sœurs indentées différemment.
1. Une tabulation sert à indenter
Pourquoi: YAML interdit totalement les tabulations pour l’indentation, parce que leur largeur varie d’un éditeur à l’autre.
Correction: Remplacez chaque tabulation par des espaces — deux par niveau est la convention. La plupart des éditeurs le font avec « convertir l’indentation en espaces ».
2. Une valeur sans guillemets contient un deux-points
Pourquoi: title: foo: bar est ambigu — l’analyseur ne peut pas dire quel deux-points sépare la clé de la valeur.
Correction: Mettez la valeur entre guillemets : title: 'foo: bar'.
3. Un crochet, une accolade ou un guillemet n’est jamais fermé
Pourquoi: Les collections de flux comme [80, 443] et les chaînes entre guillemets doivent être fermées sur la même ligne logique. La plupart des analyseurs signalent cela comme une erreur d’indentation de nombreuses lignes plus loin.
Correction: Ajoutez le délimiteur fermant, ou réécrivez la valeur en style bloc avec une entrée par ligne.
4. La même clé apparaît deux fois
Pourquoi: Les mappages YAML exigent des clés uniques, tout comme les objets JSON. Garder silencieusement la dernière valeur masquerait un vrai bug.
Correction: Renommez ou supprimez le doublon — ou indentez-le d’un niveau s’il devait être une sous-clé.
5. Un alias pointe vers une ancre qui n’existe pas
Pourquoi: *nom fait référence à une ancre définie avec &nom. Les ancres doivent apparaître dans le document avant les alias qui les utilisent.
Correction: Définissez l’ancre d’abord, et vérifiez l’orthographe — les noms d’ancres sont sensibles à la casse.
6. Des clés sœurs sont indentées différemment
Pourquoi: Toutes les clés d’un même bloc doivent être à la même indentation. Deux espaces sur une ligne et trois sur la suivante terminent le bloc prématurément.
Correction: Rendez l’indentation de toutes les clés sœurs identique.
Deux corrections, avant et après
Les deux erreurs qu’on rencontre le plus souvent, présentées en YAML cassé à côté de sa forme corrigée.
Deux-points sans guillemets dans une valeur
Le second deux-points rend la ligne ambiguë ; mettre toute la valeur entre guillemets règle le problème.
Cassé
title: Deploy: production
owner: platform teamCorrigé
title: "Deploy: production"
owner: platform teamIndentation inégale entre sœurs
« ports » est à trois espaces alors que ses sœurs sont à deux, le bloc se termine donc trop tôt.
Cassé
server:
host: localhost
ports:
- 8080Corrigé
server:
host: localhost
ports:
- 8080Quand le YAML est valide mais quand même faux
Un document peut s’analyser parfaitement et signifier pourtant autre chose que ce que vous vouliez. Le cas classique est country: NO, YAML valide dans toutes les versions — mais lu comme la chaîne "NO" en YAML 1.2 et comme le booléen false en YAML 1.1. Toute cette classe de changements de type silencieux est traitée dans le guide YAML 1.1 vs 1.2.
Références
- Spécification YAML 1.2.2 — les règles d’indentation, de collections de flux, d’ancres et de clés uniques
- YAML 1.2.2 §6.1 Espaces d’indentation — pourquoi les tabulations sont interdites
- Documentation PyYAML — les messages d’erreur que voient la plupart des utilisateurs Python
- js-yaml — l’analyseur derrière les outils de ce site
Corrigez votre YAML maintenant
Chaque erreur de cette page est détectée avec la ligne exacte et une correction suggérée par les outils gratuits de ce site. Rien n’est envoyé — tout s’exécute dans votre navigateur.
Tous les outils
YAML vers JSON
Convertisseur YAML JSON en ligne: JSON formaté, minifié, privé et erreurs à la ligne exacte.
OuvrirJSON vers YAML
Convertissez JSON en YAML lisible avec indentation contrôlée, clés triées et sortie prête à copier.
OuvrirValidateur YAML
Validez YAML en ligne: syntaxe, indentation, tabulations et clés dupliquées avec ligne exacte.
OuvrirFormateur YAML
Formatez, embellissez et réindentez YAML avec une indentation propre et les commentaires conservés.
Ouvrir