- docx (format Microsoft Word);
- pdf (format Adobe);
- mobi (couramment utilisé dans les appareils Amazon Kindle) ;
- et bien plus encore (ePub, djvu, fb2...).
JSON
Notation d'objet JavaScript. Vous le connaissez déjà un peu ! Nous en avons parlé dans cette conférence et nous avons examiné la sérialisation en JSON ici . Il tire son nom pour une raison. Les objets Java convertis en JSON ressemblent en réalité exactement aux objets JavaScript. Vous n'avez pas besoin de connaître JavaScript pour comprendre la signification de notre objet :{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Il n'est pas nécessaire de transmettre un objet. JSON peut également contenir un tableau d'objets :
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
Puisque JSON est un objet JavaScript, il prend en charge les formats de données JavaScript suivants :
- cordes;
- nombres (nombre);
- objets (objet);
- tableaux (tableau);
- valeurs booléennes (vrai et faux) ;
- nul.
-
Format lisible par l'homme. C'est un avantage évident si votre utilisateur final est humain. Par exemple, votre serveur stocke une base de données avec les horaires des vols. Un client humain demande des données à cette base de données à l’aide d’une application Web alors qu’il est assis chez lui devant un ordinateur. Puisque vous devez fournir les données dans un format qu’il peut comprendre, JSON est une excellente solution.
-
Simplicité. On pourrait dire que c'est élémentaire :) Ci-dessus nous avons donné un exemple de deux fichiers JSON. Et même si vous n'avez jamais entendu parler de l'existence de JavaScript (et encore moins de ses objets), vous pouvez facilement comprendre quels types d'objets y sont décrits.
L'intégralité de la documentation JSON est une page Web avec quelques images. -
Répandu. JavaScript est le langage frontal dominant et il dicte ses termes. Utiliser 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). De nombreuses bibliothèques ont été écrites pour travailler avec JSON pour tous les langages de programmation possibles.
YAML
Au début de son existence, il signifiait Yet Another Markup Language – « un autre langage de balisage ». Il se positionnait à l’époque comme un concurrent de XML. Aujourd'hui, au fil du temps, il signifie « YAML Ain't Markup Language » (« YAML n'est pas un langage de balisage »). Comment est-il? Imaginons que nous devions créer 3 classes de personnages pour notre jeu informatique : Guerrier, Mage et Voleur. Ils auront les caractéristiques suivantes : force, agilité, endurance et un ensemble d'armes. Voici à quoi ressemblera notre fichier YAML avec les descriptions de 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
Le 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 pour désigner chaque niveau. Quels sont les avantages du format YAML ?
-
Lisible par l'homme. Encore une fois, même si vous voyez un fichier yaml sans description, vous pouvez facilement comprendre quels objets y sont décrits. YAML indique à quel point la page principale de yaml.org est un fichier yaml normal :)
-
Compacité. La structure du fichier est formée d'espaces : il n'est pas nécessaire d'utiliser des crochets ou des guillemets.
-
Prise en charge des structures de données natives des langages de programmation. Un énorme avantage de YAML par rapport à JSON et à de nombreux autres formats est qu'il prend en charge différentes structures de données. Parmi eux:
-
!!map
Une collection non ordonnée de paires clé:valeur sans possibilité de doublons ; -
!!omap
Une séquence ordonnée de paires clé:valeur sans possibilité de doublons ; -
!!pairs :
une séquence ordonnée de paires clé:valeur avec possibilité de doublons ; - !!set
Une séquence non ordonnée de valeurs qui ne sont pas égales les unes aux autres ; - !!seq
Séquence de valeurs arbitraires ;
Certaines de ces structures vous seront familières depuis Java ! :) Grâce à cette fonctionnalité, vous pouvez sérialiser diverses structures de données des langages de programmation au format YAML.
-
-
Possibilité d'utiliser l'ancre et l'alias
Traduction des mots « ancre » et « alias » - « ancre » et « pseudonyme ». En principe, il décrit assez précisément l'essence de ces termes dans YAML.
Ils permettent d'identifier un élément dans un fichier yaml, et d'y faire référence dans le reste du fichier s'il apparaît de manière répétée. L'ancre est créée à l'aide du symbole
&
et l'alias est créé à l'aide de*
.Disons que nous avons un dossier contenant des descriptions des livres de Léon Tolstoï. Pour éviter d'écrire manuellement le nom de l'auteur à chaque fois, nous allons simplement créer une ancre "leo" et y faire référence 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 nous lirons ce fichier avec un analyseur, la valeur « Léon Tolstoï » sera remplacée aux bons endroits à la place de notre alias.
- Vous pouvez intégrer des données dans d'autres formats dans YAML. 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 ce que l'on appelle l'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 courant, non inférieur à JSON et YAML (si nous parlons d'utilisation dans des projets réels). Nous avons une conférence séparée sur XML .
BSON (JSON binaire)
Comme son nom l’indique, il est très similaire à JSON, mais n’est pas lisible par l’homme et fonctionne sur des données au format binaire. Cela le rend très pratique pour stocker et transférer des images et autres pièces jointes. De plus, BSON prend en charge certains types de données qui ne sont pas disponibles dans JSON. Par exemple, vous pouvez écrire une date (au format milliseconde) ou même un morceau de code JavaScript dans un fichier BSON. La base de données NoSQL populaire MongoDB 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 transférées (par exemple, s'il y a beaucoup de données et que nous devons réduire la charge). Dans cette situation, nous pouvons utiliser un protocole basé sur la position , c'est-à-dire transmettre les valeurs des paramètres sans les noms des paramètres eux-mêmes."Leo Tolstoy" | "Anna Karenina" | 1873
Les données dans ce format prennent beaucoup moins de place qu'un fichier JSON à part entière. Bien sûr, il existe d'autres formats de sérialisation, mais vous n'avez pas besoin de tous les connaître maintenant :) Il est bon de se familiariser avec les formats qui sont désormais la norme de l'industrie pour le développement d'applications et de se souvenir de leurs avantages et de leurs différences les uns par rapport aux autres. . Et notre conférence est terminée :) N'oubliez pas de résoudre quelques problèmes aujourd'hui ! À la prochaine! :)
GO TO FULL VERSION