JSON com Google GSON

O que é JSON?

JSON com Google GSON. JSON é um acrônimo para “JavaScript Object Notation”, é um formato mais leve que xml e mais entendível para se trafegar dados entre sistemas computacionais, seu uso está sendo cada vez mais adotado por aplicações web e dispositivos móveis da atualidade.
Algumas das vantagens são:

  • Fácil de entender.
  • Parsing facilitado.
  • Suporta objetos.
  • Extremamente leve.
  • Usado pelos maiores serviços da web como Google, Facebook e etc.

JSON é em formato texto e completamente independente de linguagem.
Aplicações web desenvolvidas com Spring MVC e AngularJS fazem o uso extremo de JSON tornando assim uma aplicação leve, robusta, eficiente e com baixo processamento do servidor.
Um exemplo extremamente simples de JSON pode ser de uma pessoa, veja:

{  
   "nome":"Java",
   "sobrenome":"Avançado",
   "idade":29
}

Caso de Uso

Vamos ver um caso muito comum em vários sistemas, uma analise onde temos objetos pessoa e seus telefones, abaixo podemos verificar a modelagem dos dados em 1 para muitos em UML.
diagrama-classes-pessoa-telefone

A classe Pessoa

Todos os atributos devem ser implementados.

public class Pessoa {

	private String nome;
	private String sobrenome;
	private int idade;

	private List telefones = new ArrayList();

	public void setTelefones(List telefones) {
		this.telefones = telefones;
	}

	public List  getTelefones() {
		return telefones;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSobrenome() {
		return sobrenome;
	}

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}

	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

A classe Telefone

Todos os atributos devem ser implementados.

public class Telefone {

	private String tipo;
	private String numero;

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public String getNumero() {
		return numero;
	}

	public void setNumero(String numero) {
		this.numero = numero;
	}

API Gson Google

A referência correta do pacote desta biblioteca é com.google.gson.Gson e contém dentre outros com dois métodos que são os mais interessantes e usuais, são eles toJson e o fromJson. Vamos entender o que cada um faz:

  • toJson transforma objetos em JSON com saída String.
  • fromJson transforma String JSON em objetos novamente.

Criando os objetos com dados

Nesta parte iremos desenvolver um exemplo simples, criando um objeto pessoa e adicionando telefones a ele.

Pessoa pessoa = new Pessoa();
pessoa.setIdade(29);
pessoa.setNome("Java");
pessoa.setSobrenome("Avançado");
		
Telefone telefone = new Telefone();
telefone.setTipo("celular");
telefone.setNumero("(44) 5555-8888");
		
Telefone telefone2 = new Telefone();
telefone2.setTipo("fixo");
telefone2.setNumero("(44) 8888-3333");
		
pessoa.getTelefones().add(telefone);
pessoa.getTelefones().add(telefone2);

Convertendo para JSON

Simplesmente instanciamos um objeto Gson e chamamos o método toJson passando a pessoa e o tipo da classe.

String json = new Gson().toJson(pessoa, Pessoa.class);

O resultado:

{  
   "nome":"Java",
   "sobrenome":"Avançado",
   "idade":29,
   "telefones":[  
      {  
         "tipo":"celular",
         "numero":"(44) 5555-8888"
      },
      {  
         "tipo":"fixo",
         "numero":"(44) 8888-3333"
      }

Convertendo JSON para Objeto

Simplesmente instanciamos um objeto Gson e chamamos o método fromJson passando o JSON e o tipo da classe.

Pessoa pessoa =	new Gson().fromJson("
{  
   "nome":"Java",
   "sobrenome":"Avançado",
   "idade":29,
   "telefones":[  
      {  
         "tipo":"celular",
         "numero":"(44) 5555-8888"
      },
      {  
         "tipo":"fixo",
         "numero":"(44) 8888-3333"
      }", Pessoa.class);

Pronto! já teremos novamente o objetos pessoa e seus telefone em Java.
Abraços!

Curso recomendado para você

Selecionei os cursos on-line para você se preparar e abrir as portas para as vagas de programação. Conheça cada um dos cursos nos links oficiais abaixo. 🙂

Curso Profissional + Certificado + Acesso Vilatício + Suporte


Formação Java Web Profissional - Cursos em Java
Full-Stack Web Java EE
Mais de 600 aulas em PrimeFaces, JSF, Spring, Hibernate, JPA, Ireport, CDI e muitos mais. Iremos do básico ao avançado.
2.985 alunosHoras do curso - Cursos em Java 150h Horas do curso certificado

600+ aulas. A melhor forma de aprender a desenvolver sistemas em Java é tendo como exemplo um projeto e curso completo onde possa observar o código para melhor entendimento do funcionamento das rotinas a acompanhar as vídeos aulas de desenvolvimento. Esse curso contém tudo que um desenvolvedor precisa saber para entrar no mercado de trabalho.
Desenvolvedor(a) Full-Stack
Full-Stack Web PHP
Domine as principais tecnologias do mercado e se torne Desenvolvedor Full-Stack, com salários na faixa dos R$5.000,00.
1.600 alunosHoras do curso 150h Horas do curso certificado

Adquira hoje o curso e tenha acesso ao mesmo para sempre. Você pode se inscrever hoje e estudar no seu ritmo, pois o curso nunca vai expirar.

 


 


Acesse
Cursos e Projetos
Java
Acesse
Outros Cursos
PHP MySQL Android
Acesse
Encomende um Projeto
Feito pra Você
Acesse
Tire as Dúvidas On-line
Consultor
Acesse
Aulas de Java só suas
Encomende Agora
Acesse
Dividindo Conhecimento
Posts e Tutoriais
Acesse
Sites e Parceiros
Associados
Acesse
Conheça os curso gratuitos
Grátis

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

 

Depoimento de aluno


 
Alunos Felizes
 
Alunos Felizes
 
Alunos Felizes
 
Instrutor Java Quer se tornar aluno VIP? CLIQUE AQUI!
Instrutor Java

Alex Fernando Egidio
Autor, criador e fundador do JDev Treinamento on-line. Atua no mercado como desenvolvedor e engenheiro de sistemas em Java é apaixonado por desenvolvimento web em Java e pela “mágica” que seus frameworks trazem para o dia a dia de nós desenvolvedores.
Com mais de 10 anos de experiência ajuda programadores do Brasil todo a se tornarem profissionais.