Assim como o formato XML retornado pelo servidor em aplicações assíncronas temos também o JSON que é outro formato de dados. O formato JSON foi originalmente criado por Douglas Crockford e significa Javascript Object Notation. Sempre que quisermos enviar informações entre uma página web e um servidor precisaremos de alguma forma de formatar-las como texto puro, XML ou mesmo JSON que é mais uma maneira de enviar e retornar dados.
JSON é utilizado em grandes portais como Google e Yahoo. JSON é bastante indicado também para programadores front-end que não são acostumados a ler ou escrever em XML. JSON é muito mais simples de manipular pois é parecido com matrizes e listas que é bem comum em praticamente todas linguagens inclusive Javascript.
Todos desenvolvedores se perguntam qual formato de dados usar: texto puro, XML ou JSON. Texto puro é o menos indicado porque você precisará definir um formato próprio que só você entende e precisará manipular de forma primitiva eles, o XML é uma excelente opção sendo mais usado em estruturas de dados complexas e o JSON é bastante indicado em diversas situações incluindo aquelas em que trabalhamos com linhas de uma tabela ou matrizes.
2. JSON versus XML
Muitos dizem que o formato de dados JSON é muito superior ao formato de dados em XML principalmente quando se trata de Javascript e aplicativos assíncronos. Poucas pessoas conhecem JSON, no entanto muitos conhecem o XML que é um padrão reconhecido e bastante disseminado, no entanto XML é grande e por vezes difícil de lidar, por outro lado o XML pode manipular praticamente qualquer coisa e diversos tipos de dados. Quando fala-se em velocidade o JSON é mais rápido do que XML, porém mesmo assim o XML também é rápido, um não anula o outro mas JSON é estatisticamente mais rápido.
Apesar das diversas opções do XML o JSON se preocupa basicamente em passar informações de uma página Web para um servidor e, em seguida, fazer a trajetória inversa sem precisar de muito esforço, ferramentas extras ou percorrer uma árvore DOM. Portanto, para trabalharmos diretamente em Javascript de maneira leve e fácil utiliza-se o JSON. No entanto, no lado servidor os ambientes de desenvolvimento como Java, PHP, Perl, C#, etc precisam dar suporte ao JSON, hoje a maioria das linguagens já disponibiliza esse suporte através de APIs específicas.
Como pode-se ver existem vantagens e desvantagens em se trabalhar com uma das abordagens, cabe a você analisar cada uma delas e ver qual pesa mais para utilizar na sua aplicação. Abaixo falaremos um pouco mais sobre JSON.
3. Utilizando JSON no lado Cliente
JSON utiliza chaves ao invés de sinais de maior e menor utilizados no XML, mas pode armazenar os mesmos tipos de dados que o XML. Segue abaixo um exemplo de dados no JSON:
Listagem 1: Exemplo de dados no JSON.
{"endereco": [
"rua": Leonor Viana,
"cidade": São Paulo,
"estado": SP
Assim como em XML o formato de dados do JSON também é bastante intuitivo. Para trabalhar com JSON usamos o Javascript comum não necessitando de nenhum modelo de objetos especial.
Para recuperar os dados JSON retornados pelo servidor poderíamos utilizar o código Javascript abaixo:
Listagem 2: Exemplo de código Java script manipulando dados JSON.
var jsonData = eval('(' + request.responseText + ')' );
Veja que endereco[0] retorna o primeiro e único item endereço, se tivéssemos mais itens definiríamos um outro índice.
Utilizando JSON nota-se que não precisamos nos preocupar em manipular árvores DOM ou qualquer outra ferramenta de suporte, JSON cuida de tudo.
No código acima usamos a propriedade responseText para receber os dados do servidor em formato de texto puro, após isso convertemos para um objeto Javascript, por isso utilizamos a função eval acima.
4. Utilizando JSON no lado Servidor
Para criar e exibir dados JSON no lado servidor precisaremos de uma biblioteca para que possamos manipulá-lo. As bibliotecas JSON ajudam bastante na manipulação do JSON pois elas sabem exatamente como manipular essas informações. Entre as linguagens que suportam JSON temos C/C++, C#, ColdFusion, ActionScript, Java, Perl, PHP, ASP 3.0, Python, Ruby.
No PHP tem a biblioteca JSON.php que é bastante utilizada, enquanto que para Java existe a biblioteca JSON4J bastante popular entre os desenvolvedores Java.
As bibliotecas facilitam bastante o uso de JSON no lado servidor e para saber como manipular JSON numa linguagem especifica o desenvolvedor deverá estudar como a biblioteca escolhida manipula os dados JSON e que tipos de operações ela disponibiliza.
JSON é um formato de dados como XML, porém diferente de XML, utilizando JSON o desenvolvedor não precisará do DOM para trabalhar com dados JSON, ele possui sua própria forma através de matrizes e listas. JSON não é nada mais do que Javascript puro e podemos enviar dados em formato JSON para o servidor em nossas solicitações, assim como podemos enviar XML ou texto puro, porém o trabalho é feito de forma muito mais elegante e simples com JSON. No lado servidor se quisermos manipular dados JSON precisamos utilizar uma biblioteca para capturar os dados recebidos e converte-los em matrizes ou algum formato que ele puder usar. Ao escolher o formato de dados que se quer utilizar deve-se avaliar qual o melhor para as suas necessidades, normalmente utiliza-se XML ou JSON cada uma possuindo as suas vantagens e desvantagens como já foi discutido anteriormente.