JSON – Formato de Troca de Dados

 

JSON – "JavaScript Object Notation" é um formato para troca de dados, criado como um subconjunto de JavaScript, mas sua simplicidade e funcionalidade o ajudaram a tornar-se popular, e como não requer JavaScript, foi adotado por uma grande variedade de linguagens, inclusive o Delphi.

Principais vantagens

  • Baseada em Texto
  • Independente de linguagem
  • Para nós é fácil compreender, tanto para ler quanto para escrever
  • Para as máquinas e sistemas, é fácil de interpretar e gerar

Definição da estrutura

  • Coleção de Nome e Valor
    • Object
    • Record
    • Struct
    • Dictionary
    • Hash Table
    • Keyed List
    • Associative Array
  • Lista Ordenada de Valores
    • Array
    • Vector
    • List
    • Sequence

 

Exemplo

{ 
"Boletim": { 
	"nome":"Cesar", { 
		"Primeiro_Bimestre":8, 
		"Segundo_Bimestre":6, 
		"Terceiro_Bimestre":9, 
		"Quarto_Bimestre":7 
	}, 
	"nome":"Giba", { 
		"Primeiro_Bimestre":6, 
		"Segundo_Bimestre":9, 
		"Terceiro_Bimestre":6, 
		"Quarto_Bimestre":8 
	}, 
	"nome":"Wilson", { 
		"Primeiro_Bimestre":4, 
		"Segundo_Bimestre":6, 
		"Terceiro_Bimestre":5, 
		"Quarto_Bimestre":2 
	}, 
}, 
}; 

Muito parecido com uma matriz, tem recursos suficientes para representar os mesmos dados que XML.

O formato JSON é especificado na RFC 4627, seu MIME type é application/json e a extensão padrão de arquivo .json. Este formato é utilizado com frequência para transmitir estrutura de dados através de conexões de rede em um processo conhecido como serialização, onde é utilizado como alternativa ao tão conhecido XML.

Praticamente todas as linguagens populares implementam JSON, e algumas que trabalho no momento: Delphi, PHP, JavaScript, nesta tem implementação utilizando jQuery.

Para Delphi encontrei três implementações, a que me parece ser mais completa é o JSON Toolkit, segundo o site contém:

  • Parser rápido
  • Fácil utilização
  • Validador JSON
  • JSON-RPC
  • Pode gerar JSON em formato humanamente compreensível

Apesar de ser natural uma comparação com XML, é comum utilizar ambos formatos numa mesma aplicação, uma ótima referência é o Google Maps.

 

Atenção

Se você desenvolve ou pretende desenvolver aplicações em três camadas ou aplicações web, JSON é uma tecnologia que você deve conhecer, tenho certeza que os componentes de comunicação implementarão este padrão, inclusive já vi comentários de que é possível que o RemObjects suporte nas próximas versões, creio que o Delphi 2008 também virá com alguma novidade nesta área, aplicações muito mais populares já suportam, uma delas que talvez você esteja usando enquanto lê este artigo é o Firefox.

 

Referências

 
 
 

2 Comments

 
  1. Grande artigo, sempre defendi o JSON como padrão ao invês do XML. Uma pena o PHP ainda não ter um parser decente pra ele. Não sei se você já percebeu mas o json_encode e o json_decode têm alguns problemas em certas estruturas JSON.

    OBS: o exemplo não ta bom, o acesso via JavaScript é prototipado, e nesse exemplo você terá que acessar vetorialmente tirando uma vantagem enorme da criação de extends pros dados.

  2. Cesar Romero disse:

    Gilberto,

    Obrigado pelos comentários.

    O exemplo não deve ser usado, até porque não disponibilizei nenhum programa exemplo que o utiliza, a idéia é apenas mostrar a estrutura, mas seu comentário vale sim, e fica o aviso pra quem for utilizar JSON.

 

Leave a Comment

 




XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>