Ir ao conteúdo

GSON – Trabalhando com JSON em Java.

Atualizado pela última vez em 11/08/2021

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

https://github.com/google/gson

http://www.json.org/

Publicado emProgramação