quarta-feira, 29 de abril de 2009

Java e JSON

3

O título apesar de estranho, é justamente disso que vou falar JSON com Java (café), andei pesquisando diversos formatos de arquivos para usar no meu TCC, dentre eles o XML, que para quem não sabe é muito custoso para um celular processar esse tipo de arquivo, o YAML (o qual não possui nenhum biblioteca para ser tratado com JME), e o ultimo é o que eu mais me encantei o JSON.

JSON foi criado baseado em JavaScript. Porém ganhou notaridade, e foi implementada por diversas linguagens, no site oficial se encontra uma biblioteca para ser usado em Java, com o codigo fonte la. Foi esse que usei nesse exemplo, podem baixar nesse link http://www.json.org/java/index.html

Muito simples trabalhar com JSON e Java. O JSON funciona como um Map, utilizando a combinação chave => valor, uma chave sempre é uma String, e o valor pode varias, os valores disponiveis para o JSON podem ser vistos no site json.org.

Após adicionar as classes ao seu projeto vamos a utilização da biblioteca.
Basicamente a biblioteca consiste nos objetos JSONObject, JSONArray e JSONException
Onde JSONObject representa um único objeto no formato JSON e JSONArray representa uma coleção de objetos.

Usando JSONObject


JSONObject obj = new JSONObject();
obj.put("nome", "Rafael");
obj.put("idade", 21);
System.out.println(obj);


a saída sera algo como:

{ "nome":"Rafael", "idade":21 }


Perfeito não? muito simples. Calma que tem mais

public class Pessoa{
private String nome;
private int idade;

//Gets e Sets
}


Criamos um objeto para comportar as alterações. e para converte-lo em JSON?

Pessoa p = new Pessoa();
p.setNome("Rafael");
p.setIdade(21);
JSONObject obj = new JSONObject(p);
System.out.println(obj);

E a saída?

{ "nome":"Rafael", "idade":21 }


Um JSONArray segue a mesma linha de raciocionio, com a diferença que vc adiciona a ele diversos JSONObject ou Strings no formato JSON. excelente para quem quer trabalhar com esse arquivo em formato leve.

É isso ai.





3 comentários:

Anônimo disse...

bem legal a paradinha vou dar uma olhada qndo chegar em casa parabéns Rafael show mesmo

Anônimo disse...

Testei todos os métodos mais ele só me retorna coleções do object. Como eu posso mostrar os valores desses objetos?

Anônimo disse...

Testei todos os métodos mais ele só me retorna coleções do object. Como eu posso mostrar os valores desses objetos utilizando JSONArray?

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting