Advertisement

Aula 04 - JSON



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. Isto explica o fato de o JSON ter sido adotado por empresas como Google e Yahoo, cujas aplicações precisam transmitir grandes volumes de dados.

2.               Sintaxe no JSON


A ideia utilizada pelo JSON para representar informações é tremendamente simples: para cada valor representado, atribui-se um nome (ou rótulo) que descreve o seu significado. Esta sintaxe é derivada da forma utilizada pelo JavaScript para representar informações. Por exemplo, para representar o ano de 2012, utiliza-se a seguinte sintaxe:

Representando o ano de 2012: 

"ano": 2012

Um par nome/valor deve ser representado pelo nome entre aspas duplas, seguido de dois pontos, seguido do valor. Os valores podem possuir apenas 3 tipos básicos: numérico (inteiro ou real), booleano e string. As Listagens 2, 3, 4 e 5 apresentam exemplos. Observe que os valores do tipo string devem ser representados entre aspas.

Representando um número real: 

"altura": 1.72

Representando uma string:

"site": “www.devmedia.com.br”

Representando um número negativo:

"temperatura": -2

Representando um valor booleano:

"casado": true

A partir dos tipos básicos, é possível construir tipos complexos: array e objeto. Os arrays são delimitados por colchetes, com seus elementos separados entre vírgulas. As listagens 6 e 7 mostram exemplos.

Array de Strings:

[“RJ”, “SP”, “MG”, “ES”]

Matriz de Inteiros:
[
  [1,5],
  [-1,9],
  [1000,0]
 ]

Os objetos são especificados entre chaves e podem ser compostos por múltiplos pares nome/valor, por arrays e também por outros objetos. Desta forma, um objeto JSON pode representar, virtualmente, qualquer tipo de informação! O exemplo da Listagem 8 mostra a representação dos dados de um filme.

Objeto: 
{
  “titulo”: “JSON x XML”,
  “resumo”: “o duelo de dois modelos de representação de informações”,
  “ano”: 2012,
  “genero”: [“aventura”, “ação”, “ficção”]
}

É possível representar mais de um objeto ou registro de uma só vez. Um exemplo é apresentado na Listagem 9, onde dois filmes são representados em um array.

Array de objetos
[
   {
     “titulo”: “JSON x XML”,
     “resumo”: “o duelo de dois modelos de representação de informações”,
     “ano”: 2012,
     “genero”: [“aventura”, “ação”, “ficção”]
    },
   {
     “titulo”: “JSON James”,
     “resumo”: “a história de uma lenda do velho oeste”,
     “ano”: 2012,
     “genero”: [“western”] 
    }
]

Por fim, é importante citar que a palavra-chave “null” deve ser utilizada para a representação de valores nulos (Listagem 10).

Representando um valor nulo
  "site":null

3.               JSON x XML

Podemos entender o JSON como uma espécie de “concorrente” da XML na área de troca de informações. Nesta seção, apresentamos algumas das principais semelhanças e diferenças entre os dois modelos para a representação 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 tag de abertura e muito menos de fechamento!
  • 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 aplicações. Por exemplo: nos dias atuais existem bancos de dados inteiros armazenados em XML e estruturados em SGBD’s XML nativo.
  • Nessa aula, apresentamos os conceitos fundamentais sobre o modelo JSON para a representação de informações - atualmente muito utilizado em aplicações AJAX. Através do JSON podemos representar informações de uma forma mais compacta, rápida e simples do que na XML. Em contrapartida, a XML é uma linguagem mais rica, que possui um maior número de aplicações e um maior grau de maturidade. Existem inúmeros parsers para JSON, disponíveis para praticamente todas as linguagens. O artigo apresentou um exemplo de programa Java que fez uso da biblioteca “gson”, desenvolvida pelo Google.


Esse conteúdo foi adaptado do DevMedia

Nenhum comentário

Conta pra mim sua opinião!

Fale comigo