sábado, abril 07, 2007

Uma pequena introdução ao JSON

Javascript Object Notation, ou simplesmente JSON para os íntimos, é uma linguagem de formatação de dados baseado na sintaxe do Javascript. Foi criada por Douglas Crockford com o o objetivo de ser uma opção mais leve em relação ao XML, já largamente usado em webservices e que é padrão em transimissão de dados. O JSON utiliza-se de duas formas de representação de dados do javascript na sua sintaxe: os Array Literals e os Object Literals. Vamos falar sobre cada um deles em detalhes.

Array Literals:São vetores definidos com o uso de colchetes como delimitadores e que aceitam qualquer objeto como membros, já que os arrays em javascript não são tipados. Por exemplo vamos definir um array literal contendo quatro valores:

var meuArrayLiteral = ["Uma String",150,true,null]

Observe que um array literal pode conter
strings, numeros, boleanos, outros objetos ou até mesmo um array literal. Não entendeu? Veja só:

var meuOutroArrayLiteral = ["Outra String", ["meu","outro","array"]]

Object Literals: Object literals são normalmente usados para armazenar informações em pares nome-valor. São definidos entre chaves ({ e }) e podem conter quantos pares nome-valor você precisar. Por exemplo:

var endereco = {
"rua":"Rua das Palmeiras",
"numero": 12,
"bairro": "Caminho das Árvores" }

Agora nós já podemos acessar os atributos do nosso objeto. Podemos fazer isso de duas formas. A primeira é bem conhecida dos programadores java que é utilizando ponto (.):

endereco.rua; //Retorna "Rua das Palmeiras"
endereco.numero; //Retorna 12
endereco.bairro; //Retorna "Caminho das Árvores"

A outra maneira é mais conhecida como vetor associativo ou hash e funciona utilizando o nome como índice. Exemplo:

endereco["rua"]; //Retorna "Rua das Palmeiras"
endereco["numero"]; //Retorna 12
endereco["bairro"]; //Retorna "Caminho das Árvores"

Pronto! Com isso nós já podemos montar nosso primero arquivo com formato JSON. Vamos montar um cadastro de uma concessionária de automóveis usando o que vimos até aqui.

{ "concessionaria":
>>>>>>>>>>{
>>>>>>>>>>>>"automoveis": [
>>>>>>>>>>>>>>>>{
>>>>>>>>>>>>>>>>>>>>"marca":"Ford",
>>>>>>>>>>>>>>>>>>>>"modelo":"Fiesta",
>>>>>>>>>>>>>>>>>>>>"ano":2005,
>>>>>>>>>>>>>>>>>>>>"preco":"18.500,00"
>>>>>>>>>>>>>>>>>},
>>>>>>>>>>>>>>>>>{
>>>>>>>>>>>>>>>>>>>>"marca":"Volkswagen",
>>>>>>>>>>>>>>>>>>>>"modelo":"Golf",
>>>>>>>>>>>>>>>>>>>>"ano":2004,
>>>>>>>>>>>>>>>>>>>>"preco":"27.900,00"
>>>>>>>>>>>>>>>>>>}
>>>>>>>>>>>>>>]
>>>>>>>>>>>}
>>>>}



Claramente percebemos que o código acima é bem menor que um XML convencional em relação ao número de caracteres. A economia de bytes no caso do JSON proporciona maior velocidade de comunicação entre cliente e servidor. Uma desvatangem no uso do JSON é que ele é menos legível para o ser humano, uma vez que utiliza uma linguagem mais curta e compacta. Para a manipulação de JSON no servidor existem diversas ferramentas disponíveis, sobre as quais não vou comentar neste artigo já que foge ao escopo dessa pequena introdução.

2 comentários:

Andre disse...

Gostei mto de sua explicação sobre JSON, mto facil de entender, mas poderia ter citado referencias de como trabalhar com JSON pelo servidor, no mais, vlw e parabens pelo artigo.

Douglas disse...

Muito bom o exemplo, mas deveria ter dado continuidade no exemplo da concessionaria, para vermos com qual formato é salvo o arquivo Json é como é a chamada a ele