Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Alex Gamela

Min Read

25 février 2024

YAML ou JSON : quelle est la différence ?

JSON contre YAML sont deux formats populaires pour l'échange de données entre différentes applications et langages, également connus sous le nom de sérialisation des données.

Ils ont des fonctions et des caractéristiques similaires : ils représenter des objets de données et structure et utilise un syntaxe simple qui facilite la lisibilité et la modification.

Mais les différences de conception affectent leur champ d'utilisation. Cet aperçu de YAML et JSON présentera leurs principales caractéristiques et les comparera pour vous aider à faire le bon choix pour votre projet.

blue arrow to the left
Imaginary Cloud logo

Qu'est-ce que JSON

JSON signifie notation d'objet JavaScript. Comme son nom l'indique, JSON provient des formats de données JavaScript. Il s'agit d'un format standard ouvert, léger et basé sur du texte avec des types de données limités. Sa syntaxe courte et sa structure simple le rendent très facile à lire.

Il est utilisé pour envoyer des données au serveur et du serveur au client, comme une enveloppe dans laquelle les données sont placées et renvoyées entre correspondants.

Il est très apprécié des programmeurs qui l'utilisent dans les applications mobiles, les services de base de données tels que MongoDB ou Kubernetes, et les interactions avec les utilisateurs, car il constitue une alternative plus conviviale au XML. La simplicité et la rapidité de traitement qu'offre le JSON et sa haute compatibilité avec tous les systèmes en font l'un des formats les plus populaires utilisés aujourd'hui.

L'histoire de JSON

Selon le développeur de JSON, Douglas Crockford, un langage utilisant les mêmes principes était déjà utilisé chez Netscape en 1996, mais le JSON n'est devenu courant en tant que syntaxe établie qu'en 2001.

Il s'agit d'une ressource incontournable pour la technologie Android, l'API REST ou toute autre situation dans laquelle des données sont envoyées d'un serveur vers une page Web. Il est indépendant du langage, ce qui signifie qu'il peut être utilisé avec n'importe quel langage de programmation. Et une grande partie de notre expérience en ligne en dépend.

Spécifications techniques

Quelles sont les caractéristiques déterminantes d'un document JSON ? Les extensions de fichier JSON sont définies comme .json. Il utilise des structures de données universelles et un choix limité de types de données. Sa syntaxe simple utilise des conventions familières aux programmeurs de la famille des langages C, comme C, C++, C#, Java, JavaScript, Perl, Python, etc. Comme site officiel de JSON explique :

« Un objet est un ensemble non ordonné de paires nom/valeur. Un objet commence par {attelle gauche et se termine par } attelle droite. Chaque nom est suivi de : côlon, et les paires nom/valeur sont séparées par , virgule. »

Types de données utilisés par JSON

  • Cordes
  • Nombres
  • Objet
  • Matrices
  • Booléen (vrai/faux)
  • Valeurs nulles

Syntaxe

Les règles de syntaxe de JSON sont simples.

  • Le nœud racine doit être un tableau ou un objet.
  • Les données sont désignées sous forme de paires nom/valeur.
  • Les entrées de données sont séparées par des virgules.
  • Les objets sont limités entre des accolades.
  • Les crochets contiennent des tableaux.
  • Les objets peuvent avoir des objets de type tableau pour créer des listes.
  • Il utilise des guillemets autour des noms et des valeurs, séparés par deux points.

Exemple JSON

Regardons un exemple JSON, utilisant quelques informations sur le célèbre groupe de heavy metal Metallica.


Comme vous pouvez le constater, des crochets délimitent à la fois l'objet et les tableaux. Tous les éléments sont entre guillemets et le nom de l'attribut est séparé de la valeur par deux points. Une virgule est utilisée pour séparer les paires nom:valeur.

Les listes sont définies à l'aide de crochets, où les attributs du tableau sont également séparés par des virgules.

Avantages du JSON

  • Sa syntaxe compacte rend le JSON très lisible par l'homme.
  • Syntaxe simple avec balisage limité.
  • Analyse rapide par systèmes et par langues.
  • Il peut être utilisé par la plupart des systèmes et des langages.

Inconvénients du JSON

  • Types de données limités : accepte uniquement les chaînes, les nombres, les objets JSON, les tableaux, les valeurs booléennes et les valeurs nulles.
  • N'accepte pas : espace de noms, commentaire ou attribut.
  • La structure de JSON est censée être simple, il se peut donc qu'elle ne prenne pas en charge à elle seule des configurations complexes.

blue arrow to the left
Imaginary Cloud logo

Qu'est-ce que YAML

YAML signifiait Encore un autre langage de balisage, mais ce sens a changé en YAML n'est pas un langage de balisage pour exprimer sa focalisation sur les données plutôt que sur un document. Hormis les acronymes, YAML est un format léger et très lisible par l'homme, couramment utilisé pour stocker les informations de configuration pour les outils DevOps tels que ElasticSearch, Docker, Kubernetes, Prométhée, et Ansible.

Comme il est dit sur le site officiel, également écrit au format YAML :

« YAML est un langage de sérialisation de données convivial pour tous les langages de programmation. »

Il s'agit d'un langage de sérialisation de données, mais il est également souvent utilisé pour écrire des fichiers de configuration. Nous examinerons YAML à travers le prisme de la sérialisation des données.

L'histoire de YAML

YAML a été publié pour la première fois en 2001. Les membres fondateurs de YAML sont IngyDotNet, Clark Evans et Oren Ben-Kiki, qui ont uni leurs efforts pour créer un format plus simple que XML. Vous pouvez lire l'histoire d'un point de vue de première main. Depuis lors, il est devenu un outil de travail pour les développeurs du monde entier.

Spécifications techniques

YAML est écrit dans un format lisible par l'homme très clair, avec l'avantage supplémentaire de prendre en charge les commentaires, ce qui le rend très facile à modifier. Depuis il s'agit d'un sur-ensemble de JSON, un fichier YAML valide peut contenir des objets JSON. Il est adapté à la prise en charge de types de données complexes, avec la possibilité d'inclure des objets à plusieurs niveaux. Cela le rend moins convivial à utiliser avec certaines technologies.

Types de données

YAML accepte les mêmes types de données que JSON, la principale différence étant la possibilité de prendre en charge les attributs de date.

  • Cordes
  • Nombres
  • Booléen
  • Dates et horodatages
  • Séquences
  • Valeurs imbriquées
  • Valeurs nulles

Syntaxe

L'absence de crochets et de guillemets pour la plupart des fonctions rend la lecture plus naturelle. Même les non-initiés comprennent rapidement ce qui est censé se passer. La syntaxe de YAML est sa force mais aussi une source de problèmes de validation si nous ne faisons pas attention aux retraits et aux positions spatiales.

  • Utilise des paires clé-valeur, séparées par des deux-points.
  • Les ressorts ne sont pas placés entre crochets.
  • Les indentations sont utilisées pour définir la hiérarchie des données.
  • Les listes commencent par des tirets.
  • Autorise les commentaires en les faisant précéder d'un #.
  • Les espaces placés avant les attributs sont importants.
  • Pipe Character (|) autorise les chaînes multilignes ; le signe « supérieur à » (>) permet de lire les chaînes multilignes comme une seule ligne.
  • YAML peut référencer d'autres objets de données en utilisant « & ».

Exemple YAML

Maintenant, voyez à quoi ressemblent les données que nous avons utilisées ci-dessus pour JSON au format YAML :


À première vue, YAML est plus esthétique que JSON car il supprime tous les crochets et guillemets. Il ne se lit pas beaucoup comme du code mais plutôt comme un plan.

Avantages de YAML

  • Syntaxe lisible par l'homme très simple.
  • Syntaxe compacte, qui utilise une indentation de style Python pour indiquer la structure.
  • Supporte les scalers tels que int, binary, str et bool, et les collections telles que map, set, pairs et seq.
  • YAML prend en charge les commentaires là où JSON ne le fait pas. Ajoutez simplement un symbole # avant le commentaire.
  • Capacité à utiliser des structures de données complexes.
  • En utilisant le symbole « & », YAML peut réutiliser des blocs. C'est l'une des raisons pour lesquelles il est utilisé pour décrire l'infrastructure, comme les piles Kubernetes. JSON n'a pas d'opération équivalente.

Inconvénients de YAML

  • Une indentation ou un espacement incorrect génère facilement des erreurs de validation.
  • La nature déclarative de YAML rend le débogage plus difficile : le code alpha de la Norvège (NO) peut être interprété comme une valeur booléenne.
  • Aucun point d'arrêt.
blue arrow to the left
Imaginary Cloud logo

Différences entre JSON et YAML

YAML et JSON sont deux langages populaires, similaires en termes de structure et d'utilisabilité. Leurs différences de conception, de syntaxe et de fonctionnalité font de leur choix une question d'objectif.

blue arrow to the left
Imaginary Cloud logo

YAML contre JSON : quel est le meilleur ?

Lorsque vous choisissez entre le format JSON ou YAML, suivez simplement la fonction : que voulez-vous qu'ils fassent ?

JSON offre une diffusion plus rapide car il fonctionne parfaitement en tant que simple format d'échange de données. Mais c'est limité aux types de données pris en charge, ce qui peut nécessiter des ressources supplémentaires pour traiter des ensembles de données comportant un plus grand nombre d'options de types de données. Il est facile à lire une fois que vous avez dépassé les crochets et les guillemets, ce qui constitue un avantage car ils délimitent des éléments spécifiques, réduisant ainsi le risque d'interprétation erronée.

YAML, en revanche, ne se lit presque pas comme du code. Et comme une matriochka la possibilité d'inclure des objets dans les objets permet une plus grande complexité des données. L'inconvénient ? Une telle complexité ralentit le processus d'analyse et de génération. Mais avec une gamme de types de données complexes disponibles, elle a son attrait et constitue une excellente option pour élargir les types d'informations à mettre à disposition.

L'objectif et la priorité des informations à fournir sont également importants, et une hiérarchie logique doit être définie avant de commencer à coder. Cette organisation préalable définira la structure du document et la manière dont les données seront présentées.

Quel que soit le choix, tout dépend de ce que vos données sont censées faire au final.

New call-to-action

Vous avez trouvé cet article utile ? Ceux-ci vous plairont peut-être aussi !

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Alex Gamela
Alex Gamela

Rédacteur de contenu et producteur de médias numériques qui s'intéresse à la relation symbiotique entre la technologie et la société. Les livres, la musique et les guitares sont une constante.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon