YAML vs JSON : lequel choisir, et pourquoi

YAML vs JSON

YAML vs JSON : différences, pièges et .yaml vs .yml | We.Inc

YAML vs JSON côte à côte : syntaxe, commentaires, types, texte multiligne et le piège yes/no. Testez comment une valeur brute est lue, et tranchez une fois pour toutes entre .yaml et .yml.

JSON est un format de données strict pensé pour les programmes : accolades, crochets, chaînes entre guillemets doubles et aucun commentaire. YAML exprime les mêmes données avec l'indentation, autorise les commentaires et le texte multiligne, et sa version 1.2 a été conçue comme un sur-ensemble de JSON. Choisissez JSON pour les API et les sorties machine, YAML pour les fichiers modifiés à la main.

YAML et JSON comparés fonctionnalité par fonctionnalité

Les deux formats décrivent les mêmes choses : objets, listes, chaînes, nombres, booléens et null. Les vraies différences tiennent à qui lit le fichier et à la tolérance du parseur. Essayez le vérificateur de valeurs ci-dessous pour voir comment une valeur sans guillemets est typée, puis lisez les exemples côte à côte et les pièges qui guettent ceux qui passent de l'un à l'autre.

Questions fréquentes

Tout fichier JSON est-il du YAML valide ?

YAML 1.2 a été écrit pour être un sur-ensemble strict de JSON : en pratique, un document JSON se charge donc dans un parseur YAML 1.2. Il existe des cas limites, comme les clés en double, que les parseurs JSON tolèrent souvent mais que YAML interdit.

Faut-il utiliser .yaml ou .yml ?

Utilisez .yaml. La RFC 9512, qui enregistre le type de média application/yaml, désigne .yaml comme l'extension recommandée et note que .yml reste utilisée. Les deux fonctionnent dans des outils comme GitHub Actions : le choix est une question de cohérence au sein d'un même projet.

Pourquoi ma valeur YAML est-elle devenue true ou false ?

YAML 1.1 traitait des mots comme yes, no, on, off, y et n comme des booléens. Le core schema de YAML 1.2 n'accepte que true et false sous trois casses, mais les anciens parseurs restent courants. Mettre la valeur entre guillemets lève le doute.

JSON peut-il contenir des commentaires ?

Non. La RFC 8259 liste les éléments que JSON peut contenir et les commentaires n'en font pas partie. Certains outils acceptent un JSON assoupli avec commentaires, mais un parseur strict rejettera le fichier.

Lequel est le plus rapide à analyser ?

La grammaire de JSON est bien plus petite et les navigateurs intègrent un parseur natif : c'est donc généralement le choix le plus rapide et le plus sûr pour les données envoyées sur le réseau. Les parseurs YAML ont bien plus de règles à appliquer, de l'indentation au typage implicite.

Quand JSON est le meilleur choix

Quand YAML est le meilleur choix

Un même enregistrement, écrit dans les deux formats

Les mêmes réglages de site dans les deux formats. YAML supprime les guillemets et les accolades et ajoute un commentaire ; JSON écrit en toutes lettres chaque chaîne et chaque niveau d'imbrication.

Indentation de deux espaces, un commentaire, une liste et un numéro de version entre guillemets pour qu'il reste du texte.

Aucun commentaire possible, et chaque clé et chaîne porte des guillemets doubles.

Les valeurs qui changent de type quand on oublie les guillemets

Comment une valeur YAML sans guillemets est typée, et la version sûre

Comment cette valeur brute sera-t-elle lue ?

Saisissez une valeur telle qu'elle apparaîtrait après les deux-points dans un fichier YAML, sans guillemets. Le vérificateur applique les règles du core schema YAML 1.2, la liste des booléens de YAML 1.1 et la grammaire JSON.

Valeur sans guillemets

Core schema YAML 1.2

Parseurs YAML 1.1

JSON, écrit tel quel

Même valeur en JSON

booléen {v} (YAML 1.1 lit ce mot comme un booléen)

Pas de piège de booléen façon yes/no pour cette valeur

Valeur JSON valide

JSON invalide sans guillemets

JSON ne permet pas d'écrire ce nombre

Essayez

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site