Home Os formatos XML e JSON no Java
Post
Cancelar

Os formatos XML e JSON no Java

Baseado nos cursos da Softblue

Introdução

  • XML

– Extensible Markup Language

  • Linguagem de marcação para descrever dados estruturados
1
2
3
4
5
6
7
8
9
10
<Clientes>
  <Cliente id="1">;
    <Nome>João da Silva</Nome>
    <Email>[email protected]</Email>
  </Cliente>
  <Cliente id="2">
    <Nome>Maria Silva</Nome>
    <Email>[email protected]</Email>
  </Cliente>
</Clientes>

XML x HTML

  • Assim como no HTML, XML é baseado em tags

  • Em XML, as tags podem ser definidas pelas aplicações

  • XML é muito mais rígido quanto ao formato do documento

– Todos os elementos devem estar definidos de acordo com a especificação

XML - Características

  • XML possibilitou fácil integração de sistemas multiplaforma

– É um padrão aberto e independente de fornecedor e dispositivo

  • O sucesso do XML também se deve à grande quantidade de código pronto

– Facilita a manipulação de documentos

Validação

  • A validação do documento pode ser feita no momento da sua leitura

  • É possível validar documentos XML usando

– DTD

– XML Schema

Validação: DTD

  • A DTD descreve como um documento XML deve ser

  • Utiliza uma linguagem própria

  • Caiu em desuso, pois foi substituída pelo XML Schema

Validação: XML Schema

  • O XML Schema descreve como um documento XML deve ser

  • Utiliza a própria linguagem XML para especificar documentos XML

  • É o modo de validação mais utilizado atualmente

  • É mais poderoso que o DTD

Manipulação de Documentos XML

  • A manipulação de documentos pode ser feita pelas APIs

– DOM

– SAX

  • A partir do Java 1.4, implementações de ambas as APIs estão disponíveis no JDK

DOM

  • Document Object Model

  • API fácil e intuitiva

  • Cria uma árvore de objetos em memória

  • Esta árvore representa a estrutura do documento XML

  • Desvantagem

– Ocupa muita memória

SAX

  • Não é tão intuitiva quanto a DOM

  • SAX é baseada em eventos

– Funções de callback são invocadas durante o parsing do documento

  • Como não cria uma estrutura em memória, é aconselhada para documentos XML extensos

O formato JSON

  • JavaScript Object Notation

  • Formato de representação de dados

– Baseado em texto

– Independente de linguagem

– Mais simples que o formato XML

  • Baseado em duas estruturas

– Pares de chave e valor

– Sequência ordenada de elementos

1
2
{"id":1,"nome":"João da Silva","email":"[email protected]"}
[10,true,"A"]

Um conjunto de dados é delimitado por chaves ({ e })

Cada dado é separado do outro por vírgula (,)

A chave e o valor de um dado é separada por dois pontos (:)

Sequências de dados são delimitadas por colchetes ([ e ])

A API Gson

  • Uma das APIs disponíveis para manipular dados no formato JSON em Java

– http://code.google.com/p/google-gson

  • O ponto forte do Gson é a conversão de objetos Java em dados no formato JSON e vice-versa

  • Utilização da API

– Baixar o código-fonte na página oficial

– Adicionar o JAR da API ao classpath da aplicação

Classes importantes da API

  • Gson

– Principal classe da API

– Possui métodos para manipular os dados

1
2
3
4
5
Gson gson = new Gson();
Cliente c = new Cliente(1, "João da Silva", "[email protected]");
String jsonStr = gson.toJson(c);//Converte para JSON

Cliente c = gson.fromJson(jsonStr, Cliente.class);//Converte para objeto
  • JsonElement

– Representa um elemento JSON

– Subclasses

  • JsonObject, JsonArray, JsonPrimitive e JsonNull
1
2
3
4
5
JsonObject obj = new JsonObject();
obj.add("id", new JsonPrimitive(1));
obj.add("nome", new JsonPrimitive("João da Silva"));
obj.add("email", new JsonPrimitive("[email protected]"));//Adiciona os elementos
String jsonStr = gson.toJson(obj);//Converte para JSON
Esta postagem está licenciada sob CC BY 4.0 pelo autor.