A diferencia de JSON y XML, YAML está destinado a ser más legible por los humanos y menos detallado. En contraste con sus rivales JSON, que emplea entre paréntesis, y XML, que utiliza etiquetas definidas por el usuario, YAML utiliza sangría y espacio en blanco para generar bloques anidados. Por lo general, los archivos YAML se utilizan para configurar aplicaciones que necesitan servidores para alojamiento de aplicaciones o clústeres para servidores de aplicaciones en lugar de serialización o deserialización. Las personas no son fanáticos particularmente geniales de Yaml, aunque tiene muchas aplicaciones y es lo suficientemente simple como para que los humanos lean.
El lenguaje YAML se usa en la sangría para representar la estructura y la anidación. Cuando los datos complejos deben analizarse, la sangría crea problemas. Al comparar YAML, pueden ocurrir fallas debido a un espacio en blanco faltante o extra en estructuras complejas. Es difícil localizar estos problemas inesperados en el archivo YAML. Dado que los documentos YAML ahora se usan tan ampliamente, nos encontramos con situaciones en las que necesitamos manejar datos en documentos YAML utilizando el código en prácticamente todos los demás proyectos. Se proporcionan numerosas bibliotecas de código abierto para manipular archivos YAML en Java. Tanto las bibliotecas ambuladas, Jackson y Snakeyaml, se pueden usar para lograr esto. El tema principal de este artículo es cómo analizar los archivos YAML en Java usando Snakeyaml.
Cómo obtener el módulo Yaml en el idioma Java en Ubuntu 20.04
Los archivos YAML se pueden analizar en una aplicación Java utilizando la biblioteca Snakeyaml. Es una biblioteca simple y liviana que proporciona API de serialización y deserialización de alto nivel para archivos YAML. Para almacenar varios documentos a la vez, use las funciones Load () o LoadAll () en lotes. La función utiliza InputStream, un estándar popular para interactuar con archivos y objetos de cadena que contienen suficientes datos YAML.
Si está utilizando una aplicación de arranque de Spring, entonces la versión más reciente de las dependencias de Maven debe agregarse antes de usar Snakeyaml en un proyecto en POM.Archivo XML, como se muestra en lo siguiente:
Ejemplo 1: Lea el archivo YAML en el idioma Java
Leemos el siguiente documento del archivo YAML en Java. Este documento Yaml se almacena dentro del empleado.Archivo yaml.
Ahora analizaremos el documento YAML anterior (empleado.yaml) usando la clase Yaml. Este YAML se encuentra en la carpeta de recursos de nuestro proyecto Java. Primero, cargamos el archivo en un InputStream. Después de eso, construiremos el objeto Yaml, que sirve como punto de partida para usar la biblioteca. Podemos leer y analizar cualquier datos YAML válidos de un InputStream, Reader o Cadena al utilizar la instancia YAML utilizando métodos como Load ().
El módulo implementa un mapa de Java donde las teclas y los valores para cada propiedad están representados por sus nombres. Debido a que nuestros datos se almacenan en archivos YAML como valores de cadena, números o incluso colecciones, es esencial recordar que los valores del mapa son del objeto tipo. Estos pueden caber dentro de un objeto, que incluye cualquier valor que pudiéramos agregar.
Se obtendrá el siguiente resultado si mostramos nuestro objeto de datos donde se cargó el archivo YAML:
Ejemplo 2: Lea el documento anidado del archivo YAML en el idioma Java
Como puede ver, un objeto de mapa de Java simplemente mapea las propiedades del archivo YAML como pares de valor clave en nuestro código de ejemplo anterior. Modifiquemos nuestro archivo YAML para que también incluya datos de recopilación. El archivo YAML actualizado aparece de la siguiente manera:
Ahora se incluye una colección de "cursos" de campo con múltiples valores de datos en nuestro archivo YAML. Ni nuestro código Java ni el archivo YAML modificado requieren actualización. El archivo YAML se puede cargar en nuestro objeto de mapa utilizando el código anterior sin ningún problema. Solo tenemos que actualizar el nombre del archivo YAML dentro del método FileInputStream.
El resultado de leer el archivo se muestra dentro de la imagen. Cada valor en la lista de valores para la columna "cursos" en el archivo YAML es un objeto de mapa.
Ejemplo 3: Lea el objeto Yaml como el objeto personalizado Java
Ahora hemos usado con éxito el archivo YAML en nuestro código Java como pares sencillos de valor clave, importemos nuevamente al estudiante.Archivo YAML como objeto Java personalizado, un caso de uso más típico. Para importar datos de nuestros archivos YAML, utilizaremos las siguientes clases de Java: la primera clase es una clase de persona donde los atributos son ID, nombre y dirección. El método Getter Setter también se define para cada atributo. Sus datos están protegidos por getters y setters, especialmente cuando se construyen clases.
De la persona de clase, hemos extendido la clase de alumnos y definimos sus atributos. Los atributos se actualizan y se obtiene el valor de una variable a través del método Getter y Setter.
Al igual que las dos clases anteriores, la clase de curso también está construida con sus atributos.
Los datos se cargarán en un objeto llamado estudiante, y el elemento de cursos del archivo YAML se transformará en una lista de cursos de campo. El archivo YAML que usamos en el ejemplo anterior se utilizará nuevamente y se cargará como un inputstream.
Ahora, proporcionamos el tipo de datos en el que deseamos colocar los datos cuando creamos nuestro objeto de clase Yaml. Snakeyaml recibe instrucciones de leer los datos del archivo YAML y asignarlos a nuestro objeto estudiantil por el nuevo constructor (estudiante.clase).
El mapeo es simple, y los nombres de los atributos de su objeto deben coincidir con los nombres yaml de los atributos (cursos -> cursos). Como resultado, obtendrá la siguiente salida:
Conclusión
Este artículo presenta principalmente la implementación de Java del análisis y serialización de YAML basado en Snakeyaml. Snakeyaml hace que sea fácil manipular archivos YAML en proyectos Java y requiere poco código para importar archivos YAML en proyectos. Snakeyaml ofrece opciones de formato, lo que le permite ajustarlas y cambiarlas para satisfacer sus requisitos. Esta página detalla el código de muestra, proporcionando a todos un valioso recurso de aprendizaje.