Uma alternativa à XML é o JSON (com a pronuncia djeisón), um acrônimo para "JavaScript Object Notation", é um formato leve para intercâmbio de dados computacionais. O JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente.
A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX. Uma das vantagens reinvindicadas de JSON sobre XML como um formato para intercâmbio de dados neste contexto, é o fato de ser muito mais fácil escrever um analisador JSON. Em JavaScript mesmo, JSON pode ser analisado trivialmente usando a função eval(). Isto foi importante para a aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.
Ele se baseia nas duas estruturas de dados a seguir que têm em praticamente todas as linguagens de programação modernas:
- Um conjunto de pares nome/valor. Nas linguagens de programação modernas eles são considerados como um objeto, registro ou dicionário.
- Uma lista ordenada de valores, que geralmente é considerada como uma matriz (array).
Já que essas estruturas têm suporte em tantas liguagens de programação, o JSON é uma opção ideal como formato de intercâmbio de dados entre sistemas diferentes. Além disso, já que o JSON se baseia em um subconjunto da JavaScript padrão, deve ser compatível com todos os navegadores Web modernos.
O objeto JSON é um conjunto desordenado de pares nome/valor. Ele começa com um { e termina com }. Dois pontos (:) separam os pares nome/valor. A array JSON é um conjunto ordenado de valores que começa com um [ e termina com ]. Uma vígula (,) separa os valores da array.
O valor pode ser uma string (inserida em aspas duplas), um número, um booleano (true ou false), um objeto ou uma array. Isso permite que as estruturas sejam aninhadas. A imagem abaixo é um bom guia visual para a descrição da composição de um objeto JSON.
Considere o exemplo simples de um objeto Blog. Um objeto Blog pode ser composto por dados como nome, url, pagerank e responsavel. Usando JSON, você representaria uma instância do objeto Blog dessa froma:
var blog = {
"nome" : "Blog do CTRL+C",
"url" : "http://ctrl-copy.blogspot.com/",
"pagerank" : "4",
"responsavel" : "Rodrigo Lacerda"
}
Em seguida poderia usar as propriedades do objeto Blog a notação de ponto padrão, dessa forma:
var nome = blog.nome; // Acessa o nome
var url = blog.url; // Acessa a url do blog
var pr = blog.pagerank // Acessa o pagerank
var dono = blog.responsavel // Acessa o responsável pelo blog
O JSON tem a vantagem de ser um formato leve de intercâmbio de dados. O mesmo objeto Blog descrito como XML poderia ter essa aparência:
<blog>
<nome>Blog do CTRL+C</nome>
<url>http://ctrl-copy.blogspot.com/</url>
<pagerank>4</pagerank>
<responsavel>Rodrigo Lacerda</responsavel>
</blog>
Ficou claro que a codificação JSON é menor do que a codificação XML. Isso pode fazer uma grande diferença no desempenho ao serem enviadas grandes quantidades de dados através de uma rede.
Outro bom exemplo é o Feed RSS o próprio Blogger oferece no formato JSON. Veja aqui.
O site oficial do JSON lista aproxinadamente 20 linguagens de programação com suporte ao JSON, o que siginifica que independente da tecnologia que você usar no servidor, deve poder se comunicar com o navegador através do JSON.
Veja também:
- Copyleft: O que é?
- Fotos de Sheila Mello pelada na Sexy
- Te Fucei! Fuce os scraps de seus amigos no orkut
- Desafio Solar Mundial da Panasonic
- levelHead, game interativo em forma de cubo
Referências:
JSON (Wikipédia)
Livro Fundamentos do AJAX (Ryan Asleson e Nathaniel T. Schutta)