- docx (formato Microsoft Word);
- pdf (formato Adobe);
- mobi (comumente usado em dispositivos Amazon Kindle);
- e muito mais (ePub, djvu, fb2...).
JSON
Notação de objeto JavaScript. Você já está um pouco familiarizado com ele! Falamos sobre isso nesta palestra e analisamos a serialização em JSON aqui . Recebeu esse nome por um motivo. Os objetos Java convertidos em JSON se parecem exatamente com os objetos JavaScript. Você não precisa saber JavaScript para entender o significado do nosso objeto:{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
}
Não é necessário passar um objeto. JSON também pode conter uma matriz de objetos:
[
{
"title": "Война и мир",
"author": "Лев Толстой",
"year": 1869
},
{
"title": "Бесы",
"author": "Федор Достоевский",
"year": 1872
},
{
"title": "Чайка",
"author": "Антон Чехов",
"year": 1896
}
]
Como JSON é um objeto JavaScript, ele oferece suporte aos seguintes formatos de dados JavaScript:
- cordas;
- números (número);
- objetos (objeto);
- matrizes (matriz);
- valores booleanos (verdadeiro e falso);
- nulo.
-
Formato legível por humanos. Esta é uma vantagem óbvia se o seu usuário final for humano. Por exemplo, seu servidor armazena um banco de dados com horários de voos. Um cliente humano solicita dados desse banco de dados usando um aplicativo da web enquanto está sentado em casa, diante de um computador. Como você precisa fornecer os dados em um formato que ele possa entender, JSON é uma ótima solução.
-
Simplicidade. Você poderia dizer que é elementar :) Acima demos um exemplo de dois arquivos JSON. E mesmo que você nunca tenha ouvido falar da existência de JavaScript (muito menos de seus objetos), você pode entender facilmente que tipo de objetos estão descritos lá.
Toda a documentação JSON é uma página da web com algumas fotos. -
Difundido. JavaScript é a linguagem front-end dominante e dita seus termos. Usar JSON é obrigatório. Portanto, um grande número de serviços da web usa JSON como formato para troca de dados. Todo IDE moderno oferece suporte ao formato JSON (incluindo Intellij IDEA). Várias bibliotecas foram escritas para trabalhar com JSON para todas as linguagens de programação possíveis.
YAML
No início de sua existência, significava Yet Another Markup Language - “outra linguagem de marcação”. Na época foi posicionado como concorrente do XML. Agora, com o passar do tempo, significa “YAML Ain't Markup Language” (“YAML não é uma linguagem de marcação”). Como ele é? Vamos imaginar que precisamos criar 3 classes de personagens para nosso jogo de computador: Guerreiro, Mago e Ladrão. Eles terão as seguintes características: força, agilidade, resistência e conjunto de armas. Esta é a aparência do nosso arquivo YAML com descrições de classe: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
O arquivo YAML possui uma estrutura em árvore: alguns elementos estão aninhados em outros. Podemos controlar o aninhamento usando um certo número de espaços para denotar cada nível. Quais vantagens o formato YAML tem?
-
Legível por humanos. Novamente, mesmo se você vir um arquivo yaml sem descrição, poderá entender facilmente quais objetos estão descritos nele. YAML é o quão legível por humanos é que a página principal do yaml.org é um arquivo yaml normal :)
-
Compacidade. A estrutura do arquivo é formada por espaços: não há necessidade de usar colchetes ou aspas.
-
Suporte para estruturas de dados nativas de linguagens de programação. Uma grande vantagem do YAML sobre o JSON e muitos outros formatos é que ele oferece suporte a diferentes estruturas de dados. Entre eles:
-
!!map
Uma coleção não ordenada de pares chave:valor sem possibilidade de duplicatas; -
!!omap
Uma sequência ordenada de pares chave:valor sem possibilidade de duplicatas; -
!!pairs:
Uma sequência ordenada de pares chave:valor com possibilidade de duplicatas; - !!set
Uma sequência não ordenada de valores que não são iguais entre si; - !!seq
Sequência de valores arbitrários;
Algumas dessas estruturas serão familiares para você em Java! :) Graças a esse recurso, você pode serializar várias estruturas de dados de linguagens de programação no formato YAML.
-
-
Capacidade de usar âncora e alias
Tradução das palavras “âncora” e “alias” - “âncora” e “pseudônimo”. Em princípio, descreve com bastante precisão a essência desses termos em YAML.
Eles permitem que você identifique um elemento em um arquivo yaml e faça referência a ele no restante do arquivo se ocorrer repetidamente. A âncora é criada usando o símbolo
&
e o alias é criado usando*
.Digamos que temos um arquivo com descrições dos livros de Leo Tolstoy. Para evitar escrever o nome do autor manualmente todas as vezes, simplesmente criaremos uma âncora “leo” e nos referiremos a ela usando um alias quando precisarmos:
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
Quando lemos este arquivo com algum analisador, o valor “Leo Tolstoy” será substituído nos lugares certos no lugar do nosso alias.
- Você pode incorporar dados em outros formatos em YAML. Por exemplo, 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 } ]
Outros formatos de serialização
XML
Este formato é baseado na chamada árvore de tags.<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Cada elemento consiste em uma tag de abertura e fechamento (<> e </>). Cada elemento pode ter elementos aninhados. XML é um formato comum que não é inferior a JSON e YAML (se falarmos sobre uso em projetos reais). Temos uma palestra separada sobre XML .
BSON (JSON binário)
Como o próprio nome sugere, é muito semelhante ao JSON, mas não é legível por humanos e opera com dados em formato binário. Isso o torna muito conveniente para armazenar e transferir imagens e outros anexos. Além disso, o BSON oferece suporte a alguns tipos de dados que não estão disponíveis em JSON. Por exemplo, você pode escrever uma data (no formato de milissegundos) ou até mesmo um trecho de código JavaScript em um arquivo BSON. O popular banco de dados NoSQL MongoDB armazena informações no formato BSON.Protocolo baseado em posição
Em algumas situações, precisamos reduzir drasticamente a quantidade de dados transferidos (por exemplo, se houver muitos dados e precisarmos reduzir a carga). Nesta situação, podemos utilizar protocolo baseado em posição , ou seja, passar valores de parâmetros sem os nomes dos próprios parâmetros."Leo Tolstoy" | "Anna Karenina" | 1873
Os dados neste formato ocupam muito menos espaço do que um arquivo JSON completo. Claro, existem outros formatos de serialização, mas você não precisa conhecê-los todos agora :) É bom estar familiarizado com os formatos que hoje são o padrão da indústria para desenvolvimento de aplicativos e lembrar suas vantagens e diferenças entre si . E nossa palestra chegou ao fim :) Não se esqueça de resolver alguns problemas hoje! Ver você de novo! :)
GO TO FULL VERSION