O que é JSON
Veja neste artigo sobre JSON onde começaremos pelo básico sobre e avançaremos para exemplos mais complexos nos próximos artigos.
Afinal, o que é JSON?
JSON é basicamente um formato leve de troca de informações/dados entre sistemas. Mas JSON significa JavaScript Object Notation, ou seja, só posso usar com JavaScript correto? Na verdade não e alguns ainda caem nesta armadilha.
O JSON além de ser um formato leve para troca de dados é também muito simples de ler. Mas quando dizemos que algo é simples, é interessante compará-lo com algo mais complexo para entendermos tal simplicidade não é? Neste caso podemos comparar o JSON com o formato XML.
Veja esse Tutorial completo sobre JSON
Vamos visualizar esta diferença?
XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
JSON
{
"id":1,
"nome":"Alexandre Gama",
"endereco":"R. Qualquer"
}
Bom, é notável a diferença. Visualmente o segundo trecho (em JSON) é mais fácil de ler. Mas só existe essa diferença entre os dois? Na verdade não. Podemos listar algumas outras vantagens:
Vantagens do JSON:
- Leitura mais simples
- Analisador(parsing) mais fácil
- JSON suporta objetos! Sim, ele é tipado!
- Velocidade maior na execução e transporte de dados
- Arquivo com tamanho reduzido
- Quem utiliza? Google, Facebook, Yahoo!, Twitter...
Estas são algumas das vantagens apresentadas pelo JSON. Agora vamos ao que interessa: Código! Vamos fazer um exemplo extremamente simples nesta primeira parte e avançaremos no próximo artigo, inclusive falando sobre JSON em páginas Web.
Qual biblioteca usar?
Existem diversas bibliotecas para trabalharmos com JSON e Java. Usaremos no nosso estudo o json.jar que você pode baixar tranquilamente neste link.
O nosso caso de estudo será simples: Teremos uma classe Carro que será a nossa classe POJO e a classe EstudoJSON que terá o nosso famoso método main.
package br.com.json;
public class Carro {
private Long id;
private String modelo;
private String placa;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
//Aqui fizemos o Override do método toString() para visualizar a impressão com o System.out.println()
@Override
public String toString() {
return "[id=" + id + ", modelo=" + modelo + ", placa=" + placa
+ "]";
}
}
Esta é uma classe simples, onde temos os atributos Id, Modelo e Placa. Agora teremos a classe EstudoJSON.
package br.com.json;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class EstudoJSON {
public static void main(String[] args) throws JSONException {
adicaoSimplesDeDados();
}
}
Repare que criamos o método adicaoSimplesDeDados() que conterá o código de exemplo:
private static void adicaoSimplesDeDados() throws JSONException {
//Criação do objeto carro e atribuição dos valores
Carro carro = new Carro();
carro.setId(1l);
carro.setModelo("Celta");
carro.setPlaca("AAA1234");
//Criação do objeto carroJson
JSONObject carroJson = new JSONObject();
//Inserção dos valores do carro no objeto JSON
carroJson.put("id", carro.getId());
carroJson.put("Modelo", carro.getModelo());
carroJson.put("Placa", carro.getPlaca());
//Impressão do objeto JSON
System.out.println(carroJson);
}
Se executarmos este código, veremos que foi impresso no console o seguinte:
{"id":1,"Modelo":"Celta","Placa":"AAA1234"}
Você desenvolvedor mais atento vai reparar que existe um objeto impresso: Um Long! Isso mesmo! Como vimos, o JSON consegue armazenar objetos! Podemos inclusive armazenar um objeto do tipo Carro mesmo:
Modificamos o nosso método main:
public class EstudoJSON {
public static void main(String[] args) throws JSONException {
adicaoSimplesDeDados();
adicaoDeUmObjeto();
}
}
E adicionamos o método adicaoDeUmObjeto():
private static void adicaoDeUmObjeto() throws JSONException {
Carro carro = new Carro();
carro.setId(1l);
carro.setModelo("Celta");
carro.setPlaca("AAA1234");
JSONObject carroJson = new JSONObject();
//Adição do objeto carro
carroJson.put("Carro", carro);
System.out.println(carroJson);
}
Neste caso foi impresso no console o seguinte:
{"Carro":"[id=1, modelo=Celta, placa=AAA1234]"}
Simples não? Como o JSON trabalha com coleção de pares nome/valor, podemos imprimir um valor específico simplesmente chamando o nome que desejamos.
System.out.println(carroJson.get("Modelo"));
Veja que neste caso queremos somente o modelo do carro, bastando fazer a chamada get("nome que desejamos")!
Conclusão
É isso pessoal! Vimos as vantagens do JSON e vimos como é simples começar a trabalhar com ele. Nos próximos artigos veremos exemplos mais complexos e veremos algo mais real onde faremos chamadas à API do Facebook!
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Vídeo