JSON Modelo para a representação de informações, utilizado por aplicações Web que trabalham com a tecnologia AJAX. 1. Introdução JSON (JavaScript Object Notation) é um modelo para armazenamento e transmissão de informações no formato texto. Apesar de muito simples, tem sido bastante utilizado por aplicações Web devido a sua capacidade de estruturar informações de uma forma bem mais compacta do que a conseguida pelo modelo XML, tornando mais rápido o parsing dessas informações. Adotado por empresas como Google e Yahoo, cujas aplicações precisam transmitir grandes volumes de dados. 2. Sintaxe Para cada valor representado, atribui-se um nome que descreve o seu significado. Esta sintaxe é derivada da forma utilizada pelo JavaScript para representar informações. Graças a esta similaridade, é possível usar funções para converter objetos JSon para objetos JavaScript nativos. <!DOCTYPE html> <html> <body> <h2>json Object Creation in JavaScript</h2> <p id="demo"></p> <script> var text = '"name":"john Johnson","street":"Oslo West 16","phone":"555 1234567"}'; var obj = JSON.parse(text);
document.getelementbyid("demo").innerhtml = obj.name + "<br>" + obj.street + "<br>" + obj.phone; </script> </body> </html> s "ano": 2012 "altura": 1.72 "site": www.devmedia.com.br "temperatura": -2 "casado": true O nome fica entre aspas, seguido de dois pontos, seguido do valor. Os valores podem ser: numérico, booleano ou string. A partir dos tipos básicos, é possível construir arryas [ ] e objetos }. [ RJ, SP, MG, ES ] [ [1,5], [-1,9], [1000,0] ] "employees":[ "firstname":"john", "lastname":"doe"}, "firstname":"anna", "lastname":"smith"}, "firstname":"peter","lastname":"jones"} ] Os objetos são especificados entre chaves e podem representar qualquer tipo de informação titulo : JSON x XML, resumo : o duelo de dois modelos de representação de informações, genero : [ aventura, ação, ficção ] }
É possível representar mais de um objeto ou registro de uma só vez. [ ] titulo : JSON x XML, resumo : o duelo de dois modelos de representação de informações, genero : [ aventura, ação, ficção ] }, titulo : JSON James, resumo : a história de uma lenda do velho oeste, genero : [ western ] } A palavra-chave null deve ser utilizada para a representação de valores nulos "site":null 3. JSON x XML O JSON como um concorrente de XML, pois é usado na troca de informações.
Semelhanças: Os dois modelos representam informações no formato texto. Ambos possuem natureza auto-descritiva (ou seja, basta bater o olho em um arquivo JSON ou em um arquivo XML para entender o seu significado). Ambos são capazes de representar informação complexa, difícil de representar no formato tabular. Alguns exemplos: objetos compostos (objetos dentro de objetos), relações de hierarquia, atributos multivalorados, arrays, dados ausentes, etc. Ambos podem ser utilizados para transportar informações em aplicações AJAX. Ambos podem ser considerados padrões para representação de dados. XML é um padrão W3C, enquanto JSON foi formalizado na RFC 4627. Ambos são independentes de linguagem. Dados representados em XML e JSON podem ser acessados por qualquer linguagem de programação, através de API s específicas. Diferenças: JSON não é uma linguagem de marcação. Não possui tags de abertura e de fechamento.
As informações representadas em JSON não podem ser validadas por um esquema. Já em XML, é possível validar através por DTD e XML Schema. JSON representa as informações de forma mais compacta. JSON não permite a execução de instruções de processamento, algo possível em XML. JSON é tipicamente destinado para a troca de informações, enquanto XML possui mais aplicabilidades. Por exemplo: nos dias atuais existem bancos de dados inteiros armazenados em XML e estruturados em SGBD s XML nativo. 4. JSON no Php Na página do JSON (www.json.org) existem parsers disponíveis para quase todas as linguagens: Delphi, PHP, Java, Matlab, C++, C#, etc. No universo XML existem duas API s básicas para o parsing de informações: SAX e DOM. DOM importa o documento todo para a memória, criando uma árvore, enquanto o SAX percorre o arquivo sequencialmente disparando eventos, sem realizar a importação de informações para a memória. O JSON tem vários parsers implementados por várias empresas, com diferentes princípios de funcionamento. Ainda não há um padrão. O google por exemplo tem uma biblioteca gson, que é bem documentada e simples de utilizar. 5. Referências www.json.org : site oficial do projeto. http://code.google.com/p/google-gson/: site da biblioteca gson. http://www.w3schools.com/json/default.asp: tutorial JSON