Ao contrário de JSON e XML, a YAML pretende ser mais legível por humanos e menos verbosos. Em contraste com seus rivais JSON, que emprega parênteses, e XML, que utiliza tags definidos pelo usuário, a YAML usa indentação e espaço em branco para gerar blocos aninhados. Geralmente, os arquivos YAML são usados para configurar aplicativos que precisam de servidores para hospedagem de aplicativos ou clusters para servidores de aplicativos, em vez de serialização ou desserialização. As pessoas não são particularmente ótimas fãs de Yaml, embora tenha muitas aplicações e seja simples o suficiente para que os humanos leiam.
A linguagem YAML é usada em indentação para representar estrutura e ninho. Quando dados complexos precisam ser analisados, o recuo cria problemas. Ao comparar a YAML, as falhas podem ocorrer devido a um espaço branco ausente ou extra em estruturas complexas. É um desafio localizar esses problemas inesperados no arquivo YAML. Como os documentos da YAML agora são tão amplamente utilizados, encontramos situações em que precisamos lidar com dados em documentos da YAML usando código em praticamente todos os outros projetos. Numerosas bibliotecas de código aberto são fornecidas para manipular arquivos YAML em Java. Ambas as bibliotecas populares, Jackson e Snakeyaml, podem ser usadas para realizar isso. O tópico principal deste artigo é como analisar arquivos YAML em java usando Snakeyaml.
Como obter o módulo YAML na língua Java no Ubuntu 20.04
Os arquivos YAML podem ser analisados em um aplicativo Java usando a biblioteca Snakeyaml. É uma biblioteca simples e leve, fornecendo APIs de serialização e desserialização de alto nível para arquivos YAML. Para armazenar vários documentos de uma só vez, use as funções load () ou loadAll () em lotes. A função usa o InputStream, um padrão popular para interagir com arquivos e objetos de string que mantêm dados YAML suficientes.
Se você estiver usando um aplicativo de inicialização de mola, a versão mais recente das dependências do Maven deve ser adicionada antes de usar Snakeyaml em um projeto no POM.Arquivo XML, conforme mostrado no seguinte:
Exemplo 1: Leia o arquivo YAML na linguagem Java
Vamos ler o seguinte documento do arquivo YAML em Java. Este documento YAML é armazenado dentro do funcionário.Arquivo yaml.
Agora iremos analisar o documento YAML anterior (funcionário.yaml) usando a classe YAML. Este YAML está localizado na pasta Recursos do nosso projeto Java. Primeiro, vamos carregar o arquivo em um InputStream. Depois disso, construiremos o objeto YAML, que serve como ponto de partida para usar a biblioteca. Podemos ler e analisar quaisquer dados YAML válidos de um InputStream, Leitor ou String ao utilizar a instância da YAML usando métodos como Load ().
O módulo implementa um mapa Java, onde as chaves e os valores de cada propriedade são representados por seus nomes. Como nossos dados são armazenados em arquivos YAML como valores de string, números ou até coleções, é essencial lembrar que os valores do mapa são do objeto de tipo. Estes podem se encaixar dentro de um objeto, que inclui qualquer valor que possamos acrescentar.
O seguinte resultado será obtido se exibirmos nosso objeto de dados onde o arquivo YAML foi carregado:
Exemplo 2: Leia o documento aninhado do arquivo YAML na linguagem Java
Como você pode ver, um objeto de mapa Java simplesmente mapeia as propriedades do arquivo YAML como pares de valor-chave em nosso código de exemplo anterior. Vamos modificar nosso arquivo YAML para que também inclua dados de coleta. O arquivo YAML atualizado aparece o seguinte:
Uma coleção de “cursos” de campo com vários valores de dados agora está incluída em nosso arquivo YAML. Nem nosso código Java nem o arquivo YAML modificado requer atualização. O arquivo YAML pode ser carregado em nosso objeto de mapa usando o código anterior sem problemas. Só temos que atualizar o nome do arquivo YAML dentro do método FileInputStream.
O resultado da leitura do arquivo é mostrado dentro da imagem. Todo valor na lista de valores para a coluna “cursos” no arquivo yaml é um objeto de mapa.
Exemplo 3: Leia o objeto YAML como o objeto personalizado java
Agora usamos com sucesso o arquivo YAML em nosso código Java como pares de valor-chave direto, vamos importar novamente o aluno.arquivo YAML como um objeto Java personalizado, um caso de uso mais típico. Para importar dados de nossos arquivos YAML, utilizaremos as seguintes classes Java: a primeira classe é uma classe de pessoa em que os atributos são ID, nome e endereço. O método Getter Setter também é definido para cada atributo. Seus dados são protegidos por getters e setters, especialmente na construção de classes.
Da pessoa da turma, estendemos a aula de estudante e definimos seus atributos. Os atributos são atualizados e o valor de uma variável é obtido através do método Getter e Setter.
Como as duas aulas anteriores, a classe do curso também é construída com seus atributos.
Os dados serão carregados em um objeto chamado Student, e o elemento de cursos do arquivo YAML será transformado em uma lista de cursos de campo. O arquivo YAML que usamos no exemplo anterior será utilizado novamente e carregado como um insputStream.
Agora, fornecemos o tipo de dados que desejamos lançar os dados quando criarmos nosso objeto de classe YAML. Snakeyaml é instruído a ler os dados do arquivo YAML e mapeá -los para o objeto do aluno pelo novo construtor (aluno.aula).
O mapeamento é simples e os nomes dos atributos do seu objeto devem coincidir com os nomes da YAML dos atributos (cursos -> cursos). Como resultado, você obterá a seguinte saída:
Conclusão
Este artigo apresenta principalmente a implementação Java da análise YAML baseada em Snakeyaml. Snakeyaml simplifica manipular arquivos YAML em projetos Java e requer pouco código para importar arquivos YAML para projetos. Snakeyaml oferece opções de formatação, permitindo ajustá -las e alterá -las para atender às suas necessidades. Esta página detalha o código de amostra, fornecendo a todos um recurso valioso de aprendizado.