Salve galerinhaaa, tudo bem com vocês?
Hoje vou mostrar para vocês uma biblioteca feita em JAVA desenvolvida pela Google. Ela serve para poder fazer a Serialização / Desserialização de JSON de uma forma bem simples e intuitiva. Bom parar de enrolação e vamos botar a mão na massa.
Introdução
JSON, em seu significado teórico é “Javascript Object Notation”, do qual nada mais é que o formato mais leve conhecido por mim de transferência/intercâmbio de dados. Ele é similar ao XML, e tem a mesma utilidade e mesmo intuito, porém é mais leve. O detalhe é que não necessariamente, apesar do nome, você tem que usá-lo com Javascript.
GSON é uma biblioteca Java que pode ser usada para converter objetos Java em sua representação JSON. Ele também pode ser usado para converter uma string JSON em um objeto Java equivalente. Com a GSON, você pode trabalhar com objetos Java arbitrários, incluindo objetos pré-existentes que você não possui código-fonte.
Modo de Utilização
Antes de começarmos a “codar”, temos que importar a biblioteca no nosso projeto. Podemos importar baixando o .jar através desse link ou utilizando o Apache Maven igual o código abaixo :
Ou se preferir pode utilizar o Gradle/Grails
Exemplos
Vamos utilizar aqui um exemplo de pedidos de vendas. Onde temos o pedido, itens do pedido, e o cliente que fez o pedido. Essa estrutura em JSON ficaria mais ou menos assim:
Estrutura JSON
Pedido.java
Analisando toda essa estrutura JSON vemos que temos um ID do pedido, o cliente que fez o pedido, e os itens do pedido. Logo essa será nossa classe Pedido, e a estrutura dela será essa abaixo:
Lembrando que todos os nomes das chaves do JSON tem que ser iguais as encontradas nas classes
Cliente.java
Agora vamos analisar a estrutura do cliente, vemos que temos id e nome do nosso cliente, então ela ficaria mais ou menos assim:
ItemPedido.java
Agora analisando a lista de pedidos, vemos que temos um id, uma descrição do produto, e a quantidade de cada pedido. Pensando nisso ficaria mais ou menos assim nossa estrutura:
GsonExample.java (Main)
Agora vamos botar em prática tudo o que montamos até aqui, primeiro vou apresentar o código e vou comentando passo a passo ele.
No método createJSON() mostro como criar um JSON a partir de uma classe Java. No caso, o GSON analisa a estrutura da classe, e faz o JSON de acordo com a estrutura que foi passada como parâmetro do método toJson() que nos retorna uma string contendo o JSON.
Agora no método loadJson() recebo um arquivo (do tipo File) pelo parâmetro. Após isso eu crio um reader desse arquivo e passo como parâmetro para o método fromJson() do objeto gson. Junto, ele pede um outro parâmetro que é a Classe que representa esse JSON, no nosso caso é a classe Pedido.
Lembra que no começo da explicação eu disse que o nome das chaves do JSON tem que ser o mesmo dos nomes dos atributos da classe? Então, o método fromJson verifica se é igual. Se não for, ele retorna um erro de JsonSyntaxException, indicando que há campos incompatíveis com a classe especificada.
Finalizando
A biblioteca Gson é muito útil quando se quer trabalhar com uma API REST por exemplo, ou no desenvolvimento de Aplicativos Android, para poder enviar e consumir dados utilizando pouca rede.
Para quem quiser, aqui vai o projeto no github, para poder testar e ver melhor o código.
https://github.com/zerossB/GsonExample
Referências
https://pt.stackoverflow.com/a/4171/38938
http://www.aquiejava.com/2012/11/gson-converta-json-em-objeto-java-de-forma-simples.html