← Retour au formatteur JSON / YAML AdminTools.fr — Guide développement

JSON et YAML expliqués

JSON et YAML sont les deux formats de configuration et d'échange de données les plus utilisés en informatique moderne — API, fichiers de configuration, manifestes Kubernetes, pipelines CI/CD. Ce guide explique leurs différences et les pièges les plus fréquents.

Sommaire
Qu'est-ce que JSON ? Qu'est-ce que YAML ? JSON vs YAML : quand utiliser lequel ? Les pièges courants du YAML Pourquoi toujours valider avant de déployer Erreurs courantes Questions fréquentes

Qu'est-ce que JSON ?

JSON (JavaScript Object Notation) est un format texte structuré, construit autour de quelques types simples : objets (paires clé-valeur entre accolades), tableaux (entre crochets), chaînes, nombres, booléens et null. Sa syntaxe stricte et peu permissive (virgules, guillemets doubles obligatoires) en fait un format facile à analyser de façon fiable par une machine, mais plus verbeux à écrire à la main.

C'est le format de référence pour les API REST, le stockage de configuration dans de nombreux langages, et l'échange de données entre systèmes hétérogènes.

Qu'est-ce que YAML ?

YAML (YAML Ain't Markup Language) représente les mêmes structures de données que JSON, mais avec une syntaxe basée sur l'indentation plutôt que sur des accolades et virgules — ce qui le rend généralement plus lisible et plus rapide à écrire à la main, au prix d'une plus grande sensibilité aux erreurs d'espacement.

YAML est devenu le standard de facto pour les fichiers de configuration de l'écosystème DevOps moderne : Docker Compose, Kubernetes, Ansible, GitHub Actions, GitLab CI.

JSON vs YAML : quand utiliser lequel ?

CritèreJSONYAML
Lisibilité humaineCorrecte, mais verbeuseExcellente, plus compacte
CommentairesNon supportésSupportés (#)
Facilité de génération/parsing machineTrès simple, peu ambiguPlus complexe, plusieurs pièges
Usage typiqueAPI, échange de données entre systèmesFichiers de configuration lus/édités par des humains

En pratique, JSON est privilégié quand la donnée est échangée entre programmes (API), tandis que YAML est préféré quand un humain doit régulièrement lire ou modifier le fichier (configuration d'infrastructure).

Les pièges courants du YAML

YAML interprète automatiquement certaines chaînes comme des types spéciaux. Une valeur comme NO, YES, ON ou OFF peut être convertie en booléen selon le parseur, et une valeur ressemblant à une date (2024-01-01) peut être interprétée comme un objet date plutôt qu'une chaîne — toujours mettre entre guillemets une valeur dont le type doit rester une chaîne.

Pourquoi toujours valider avant de déployer

Une erreur de syntaxe JSON ou YAML dans un fichier de configuration ne se manifeste généralement qu'au moment où le système tente de le charger — souvent en pleine intégration continue ou pire, lors d'un déploiement en production. Valider la syntaxe avant de committer ou de déployer permet de détecter ces erreurs immédiatement, dans un contexte où elles sont triviales à corriger.

Utiliser le formatteur JSON / YAML →

Erreurs courantes

Questions fréquentes

Peut-on toujours convertir du YAML en JSON sans perte ?

Dans la quasi-totalité des cas oui, car JSON est un sous-ensemble fonctionnel de ce que YAML peut représenter. Les commentaires YAML sont en revanche perdus, puisque JSON n'a pas d'équivalent.

Pourquoi mon fichier YAML semble correct mais échoue au chargement ?

La cause la plus fréquente est une tabulation invisible insérée par un éditeur de texte à la place d'espaces — vérifie avec un éditeur qui affiche les caractères invisibles, ou utilise un validateur comme celui de cette page.

JSON peut-il contenir des commentaires ?

Non, la spécification JSON ne prévoit aucune syntaxe de commentaire — certains outils tolèrent des variantes (JSON5, JSONC) mais ce ne sont pas du JSON standard.

L'outil de cette page gère-t-il tout le YAML possible ?

Il couvre les structures les plus courantes (mappings, séquences, scalaires, imbrication) suffisantes pour la majorité des fichiers de configuration. Des fonctionnalités YAML avancées (ancres, alias, types personnalisés) ne sont pas supportées.

Outils similaires