quarta-feira, 31 de outubro de 2007

Visão geral do JSON

Compartilhe este texto via Twitter

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:


Referências:
JSON (Wikipédia)
Livro Fundamentos do AJAX (Ryan Asleson e Nathaniel T. Schutta)

4 comentários:

D.Taveira disse...

Muito bem Rodrigo LoL

Ficou bem elaborado gostei,sempre soube do JSON mais nunca procurei ler muito a respeito LoL
já tenho uma leitura pra esse final de semana!

Continue assim falow
LoL

Gloria Perez on 1 de novembro de 2007 00:01 disse...

oi Rodrigo, eu me inscrevi agora no blogblogs e já vi que vc é fera. Teria paciência de me dar umas dicas? eu nao sei por exemplo, se devo colocar algum link para que minhas postagens sejam mandadas para o blogblogs ou se elas chegam lá naturalmente.
Estou inscrita no feedburner, mas esses detalhes ainda são muito estranhos pra mim
obrigada se puder responder
Gloria

gloriafperez@mac.com

Gloria Perez on 1 de novembro de 2007 01:02 disse...

Eu estava com a página da configuração aberta quando seu post chegou! foi mil, Rodrigo. Configurei direitinho. Só que fui copiar a mensagem para guardar as informaçoes e acabei apagando o post. Hoje estou um desastre.

Na verdade ainda não entendi direito o que é feed: as páginas que eu assinei, são feeds. Mas o meu feed é a minha página assinada pelos outros? é isso?
esses ícones que vc tem na sua página, dizendo acrescente a...
Sao feeds?

nao sei se devo acrescentar aquele botao ADD to Google. Se alguém clica nele o que acontece? estará anexando minha página ou aquele post ao google ou estará se linkando, apenas?

Desculpa a primariedade das perguntas, tá? Vou compondo meu blog na base do ensaio e erro.
Por favor, responde pelo meu mail, assim posso guardar todas as informaçoes e recorrer a elas: gperez@uol.com.br/perezg@globo.com ou gloriafperez@mac.com
Obrigada pela paciencia
Gloria

Gloria Perez on 1 de novembro de 2007 18:36 disse...

Rodrigo, desde cedo que tento responder seu mail, mas o servidor MAC está com problemas nessa área. Eu querida juntar suas dicas como num tutorial, por isso preferi o mail, mas vai por aqui mesmo então.
Já me inscrevi nos sites que vc citou. O VIa 6 achei muito dificil, fiz uma porção de barbaridades na minha página e não consigo consertar, pq eles não dão a opçao "editar perfil"

o que eu falei do ADD Goolge é o seguinte: se eu encontro aquele ícone na sua página e clico nele, vou estar adicionando sua página ao google ou apenas me linkando a ele?

abraço. Nem sei como te agradecer as dicas e a paciência
Gloria

Postar um comentário

 

Nos linkaram

Comentaram

Text

Blog do CTRL+C Copyright © Community is Designed by Bie Blogger Template

Olá Visitante! Se é novo aqui no blog, talvez queira assinar o nosso RSS feed para Receber atualizações diárias em seu e-mail, é grátis!