Contrairement à JSON et XML, YAML est destiné à être plus lisible par les humains et moins verbeux. Contrairement à ses rivaux JSON, qui utilise des supports, et XML, qui utilise des balises définies par l'utilisateur, YAML utilise l'indentation et l'espace pour générer des blocs imbriqués. Habituellement, les fichiers YAML sont utilisés pour configurer les applications qui ont besoin de serveurs pour l'hébergement d'applications ou les clusters pour les serveurs d'applications plutôt que la sérialisation ou la désérialisation. Les gens ne sont pas particulièrement grands fans de Yaml, bien qu'il ait beaucoup d'applications et est assez simple pour que les humains puissent lire.
Le langage YAML est utilisé dans l'indentation pour représenter la structure et la nidification. Lorsque des données complexes doivent être analysées, l'indentation crée des problèmes. Lors de la comparaison de YAML, des échecs peuvent se produire en raison d'un espace blanc manquant ou supplémentaire dans des structures complexes. Il est difficile de localiser ces problèmes inattendus dans le fichier YAML. Étant donné que les documents YAML sont désormais si largement utilisés, nous rencontrons des situations où nous devons gérer les données dans des documents YAML en utilisant du code dans pratiquement tous les autres projets. De nombreuses bibliothèques open source sont fournies pour manipuler des fichiers YAML en Java. Les deux bibliothèques bien appréciées, Jackson et Snakeyaml, peuvent être utilisées pour accomplir cela. Le sujet principal de cet article est la façon d'analyser les fichiers YAML en Java à l'aide de Snakeyaml.
Comment obtenir le module Yaml dans la langue java dans Ubuntu 20.04
Les fichiers YAML peuvent être analysés dans une application Java à l'aide de la bibliothèque Snakeyaml. Il s'agit d'une bibliothèque simple et légère fournissant des API de sérialisation et de désérialisation de haut niveau pour les fichiers YAML. Pour stocker plusieurs documents à la fois, utilisez les fonctions Load () ou Loadall () par lots. La fonction utilise InputStream, une norme populaire pour interagir avec les fichiers et les objets de chaîne contenant des données YAML suffisantes.
Si vous utilisez une application Spring Boot, la version la plus récente des dépendances Maven doit être ajoutée avant d'utiliser Snakeyaml dans un projet dans le POM.Fichier XML, comme indiqué dans ce qui suit:
Exemple 1: Lisez le fichier YAML dans la langue java
Lisons le document suivant du fichier yaml en java. Ce document YAML est stocké à l'intérieur de l'employé.Fichier yaml.
Nous allons maintenant analyser le document YAML précédent (employé.yaml) en utilisant la classe yaml. Ce Yaml est situé dans le dossier Resources de notre projet Java. Tout d'abord, chargeons le fichier dans un introutStream. Après cela, nous allons construire l'objet YAML, qui sert de point de départ pour l'utilisation de la bibliothèque. Nous pouvons lire et analyser toutes les données YAML valides à partir d'un InputStream, Reader ou String lors de l'utilisation de l'instance YAML à l'aide de méthodes comme Load ().
Le module implémente une carte Java où les clés et les valeurs de chaque propriété sont représentées par leurs noms. Parce que nos données sont stockées dans des fichiers YAML sous forme de valeurs de chaîne, de nombres ou même de collections, il est essentiel de se rappeler que les valeurs de carte sont de l'objet type. Ceux-ci peuvent s'adapter à l'intérieur d'un objet, qui comprend toute valeur que nous pourrions ajouter.
Le résultat suivant sera obtenu si nous affichons notre objet de données où le fichier YAML a été chargé:
Exemple 2: Lisez le document imbriqué du fichier YAML dans la langue Java
Comme vous pouvez le voir, un objet Java Map mappe simplement les propriétés du fichier YAML à mesure que la valeur clé se marie dans notre exemple de code précédent. Modifions notre fichier YAML afin qu'il inclue également les données de collecte. Le fichier YAML mis à jour apparaît comme suit:
Une collection de «cours» de champ avec plusieurs valeurs de données est désormais incluse dans notre fichier YAML. Ni notre code Java ni le fichier YAML modifié ne nécessitent une mise à jour. Le fichier YAML peut être chargé dans notre objet de carte en utilisant le code précédent sans aucun problème. Il nous suffit de mettre à jour le nom du fichier YAML dans la méthode FileInputStream.
Le résultat de la lecture du fichier est affiché à l'intérieur de l'image. Chaque valeur de la liste des valeurs des «cours» de la colonne dans le fichier YAML est un objet MAP.
Exemple 3: Lisez l'objet YAML comme l'objet personnalisé Java
Maintenant, nous avons utilisé avec succès le fichier YAML dans notre code Java comme des paires de valeurs clés simples, importons à nouveau l'étudiant.Fichier YAML en tant qu'objet Java personnalisé, un cas d'utilisation plus typique. Pour importer des données à partir de nos fichiers YAML, nous utiliserons les classes Java suivantes: La première classe est une classe de personne où les attributs sont ID, nom et adresse. La méthode Getter Setter est également définie pour chaque attribut. Vos données sont protégées par les getters et les setters, surtout lors de la construction de classes.
De la personne de classe, nous avons étendu la classe étudiante et défini ses attributs. Les attributs sont mis à jour et la valeur d'une variable est obtenue via la méthode Getter et Setter.
Comme les deux classes précédentes, le cours de cours est également construit avec ses attributs.
Les données seront chargées dans un objet nommé étudiant, et l'élément de cours du fichier YAML sera transformé en une liste de cours sur le terrain. Le fichier YAML que nous avons utilisé dans l'exemple précédent sera utilisé à nouveau et chargé comme un actualité.
Maintenant, nous fournissons le type de données dans lequel nous souhaitons jeter les données lorsque nous créons notre objet de classe YAML. Snakeyaml est invité à lire les données du fichier YAML et à la mapper à notre objet étudiant par le nouveau constructeur (étudiant.classe).
La cartographie est simple et les noms de vos attributs d'objet doivent coïncider avec les noms YAML des attributs (cours -> cours). En conséquence, vous obtiendrez la sortie suivante:
Conclusion
Cet article présente principalement la mise en œuvre Java de l'analyse et de la sérialisation YAML basés sur Snakeyaml. SnakeyAml permet de manipuler simple à manipuler les fichiers YAML dans des projets Java et nécessite peu de code pour importer des fichiers YAML dans des projets. Snakeyaml propose des options de formatage, vous permettant de les ajuster et de les modifier en fonction de vos besoins. Cette page détaille l'exemple de code, offrant à chacun une précieuse ressource d'apprentissage.