- docx (format Microsoft Word);
- pdf (format Adobe);
- mobi (couramment utilisé sur les appareils Amazon Kindle) ;
- et bien plus encore (ePub, djvu, fb2, etc.).
JSON
Notation d'objet JavaScript. Vous connaissez déjà un peu ce format ! Nous en avons parlé dans cette leçon , et nous avons couvert la sérialisation en JSON ici même . Il a obtenu son nom pour une raison. Les objets Java convertis en JSON ressemblent en fait exactement aux objets en JavaScript. Vous n'avez pas besoin de connaître JavaScript pour comprendre notre objet :
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
Nous ne sommes pas limités à l'envoi d'un seul objet. Le format JSON peut également représenter un tableau d'objets :
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
Étant donné que JSON représente des objets JavaScript, il prend en charge les formats de données JavaScript suivants :
- cordes ;
- Nombres;
- objets;
- tableaux ;
- booléens (vrai et faux) ;
- nul.
-
Format lisible par l'homme. C'est un avantage évident si votre utilisateur final est humain. Par exemple, supposons que votre serveur dispose d'une base de données avec un horaire de vols. Un client humain, assis devant son ordinateur à la maison, demande des données à cette base de données à l'aide d'une application Web. Parce que vous devez fournir des données dans un format qu'il peut comprendre, JSON est une excellente solution.
-
Simplicité. C'est super simple :) Ci-dessus, nous avons donné un exemple de deux fichiers JSON. Et même si vous n'avez pas entendu parler de JavaScript (sans parler des objets JavaScript), vous pouvez facilement comprendre le type d'objets qui y sont décrits.
L'ensemble de la documentation JSON se compose d'une page Web avec quelques images. -
Utilisation généralisée. JavaScript est le langage frontal dominant et il a ses propres exigences. L'utilisation de JSON est indispensable. Par conséquent, un grand nombre de services Web utilisent JSON comme format d'échange de données. Chaque IDE moderne prend en charge le format JSON (y compris IntelliJ IDEA). Un tas de bibliothèques ont été écrites pour toutes sortes de langages de programmation pour permettre de travailler avec JSON.
YAML
Initialement, YAML signifiait "Yet Another Markup Language". A ses débuts, il se positionnait comme un concurrent de XML. Maintenant, avec le passage du temps, YAML en est venu à signifier "YAML n'est pas un langage de balisage". C'est quoi exactement? Imaginons que nous devions créer 3 classes pour représenter les personnages d'un jeu vidéo : Guerrier, Mage et Voleur. Ils auront les caractéristiques suivantes : force, agilité, endurance, un ensemble d'armes. Voici à quoi ressemblerait un fichier YAML décrivant nos classes :
classes:
class-1:
title: Warrior
power: 8
agility: 4
stamina: 7
weapons:
- sword
- spear
class-2:
title: Mage
power: 5
agility: 7
stamina: 5
weapons:
- magic staff
class-3:
title: Thief
power: 6
agility: 6
stamina: 5
weapons:
- dagger
- poison
Un fichier YAML a une structure arborescente : certains éléments sont imbriqués dans d'autres. Nous pouvons contrôler l'imbrication en utilisant un certain nombre d'espaces, que nous utilisons pour désigner chaque niveau. Quels sont les avantages du format YAML ?
-
Lisible par l'homme. Encore une fois, même en voyant un fichier YAML sans description, vous pouvez facilement comprendre les objets qu'il décrit. YAML est tellement lisible par l'homme que le site Web yaml.org est un fichier YAML ordinaire :)
-
Compacité. La structure du fichier est créée à l'aide d'espaces : il n'est pas nécessaire d'utiliser des crochets ou des guillemets.
-
Prise en charge des structures de données natives pour les langages de programmation. L'énorme avantage de YAML par rapport à JSON et à de nombreux autres formats est qu'il prend en charge diverses structures de données. Ils comprennent:
-
!!map
Un ensemble non ordonné de paires clé-valeur qui ne peuvent pas avoir de doublons ; -
!!omap
Une séquence ordonnée de paires clé-valeur qui ne peuvent pas avoir de doublons ; -
!!pairs :
une séquence ordonnée de paires clé-valeur pouvant avoir des doublons ; - !!set
Une séquence non ordonnée de valeurs qui ne sont pas égales les unes aux autres ; - !!seq
Une séquence de valeurs arbitraires ;
Vous reconnaîtrez certaines de ces structures de Java ! :) Cela signifie que diverses structures de données de langages de programmation peuvent être sérialisées en YAML.
-
-
Possibilité d'utiliser l'ancre et l'alias
Ces marqueurs vous permettent d'identifier un élément dans un fichier YAML, puis de s'y référer dans le reste du fichier s'il se produit à plusieurs reprises. Une ancre est créée à l'aide du symbole & , et un alias est créé à l'aide de * .
Supposons que nous ayons un fichier décrivant des livres de Léon Tolstoï. Afin d'éviter d'écrire le nom de l'auteur pour chaque livre, nous créons simplement l'ancre leo et nous y référons en utilisant un alias lorsque nous en avons besoin :
books: book-1: title: War and Peace author: &leo Leo Tolstoy year: 1869 book-2: title: Anna Karenina author: *leo year: 1873 book-3: title: Family Happiness author: *leo year: 1859
Lorsque ce fichier est analysé, la valeur "Léo Tolstoï" est substituée aux bons endroits où nous avons nos alias.
- YAML peut intégrer des données dans d'autres formats. Par exemple, JSON :
books: [ { "title": "War and Peace", "author": "Leo Tolstoy", "year": 1869 }, { "title": "Anna Karenina", "author": "Leo Tolstoy", "year": 1873 }, { "title": "Family Happiness", "author": "Leo Tolstoy", "year": 1859 } ]
Autres formats de sérialisation
XML
Ce format est basé sur un arbre de balises.
<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Chaque élément est constitué d'une balise ouvrante et fermante (<> et </>). Chaque élément peut avoir des éléments imbriqués. XML est un format commun qui est tout aussi bon que JSON et YAML (si nous parlons de projets réels). Nous avons une leçon séparée sur XML .
BSON (JSON binaire)
Comme son nom l'indique, BSON est très similaire à JSON, mais il n'est pas lisible par l'homme et utilise des données binaires. En conséquence, il est très bon pour stocker et transférer des images et autres pièces jointes. De plus, BSON prend en charge certains types de données non disponibles dans JSON. Par exemple, un fichier BSON peut inclure une date (au format milliseconde) ou même un morceau de code JavaScript. La populaire base de données MongoDB NoSQL stocke les informations au format BSON.Protocole basé sur la position
Dans certaines situations, nous devons réduire considérablement la quantité de données envoyées (par exemple, si nous avons beaucoup de données et que nous devons réduire la charge). Dans cette situation, nous pouvons utiliser le protocole basé sur la position, c'est-à-dire envoyer des valeurs de paramètres sans les noms des paramètres eux-mêmes.
"Leo Tolstoy" | "Anna Karenina" | 1873
Les données dans ce format occupent plusieurs fois moins d'espace qu'un fichier JSON complet. Bien sûr, il existe d'autres formats de sérialisation, mais vous n'avez pas besoin de tous les connaître pour le moment :) C'est bien si vous connaissez les formats standard actuels de l'industrie lors du développement d'applications, et souvenez-vous de leurs avantages et de la façon dont ils diffèrent d'un un autre. Et avec cela, notre leçon touche à sa fin :) N'oubliez pas de résoudre quelques tâches aujourd'hui ! Jusqu'à la prochaine fois! :)
GO TO FULL VERSION