Вы находитесь на странице: 1из 4

JSON - Introduo e conceitos bsicos

Neste artigo eu vou apresentar o JavaScript Object Notation (ou JSON), um formato de intercmbio de dados abertos e baseado em texto
que fornece um formato de troca de dados padronizado mais adequado para aplicaes baseadas em Ajax.

Obs: Assim como XML, JSON tambm pode ser visto uma alternativa ao modelo de dados relacional mais apropriadamente a dados
semiestruturados.

Mas o que JSON tem a ver com a plataforma .NET, com VB .NET, C# e ASP .NET ?

Tudo !!

Quando voc cria uma aplicao que ir se comunicar com outra aplicao, quer seja ela local ou remota, voc esta trocando informaes e
neste caso um formato de dados e um protocolo de troca deve ser selecionado para que a comunicao seja feita com sucesso. Por sucesso
entende-se que quem recebe a informao consegue trat-la e entender o seu significado.

Existem uma variedade de opes de protocolos abertos padronizados, tais como SOAP, XML, etc., que podem ser adotados e isso vai
depender da finalidade e dos requisitos da sua aplicao.

Dessa forma, JSON um protocolo leve para intercmbio de dados e est baseado em um subconjunto da linguagem de programao
JavaScript, sendo independente desta e de qualquer linguagem.

JSON lembra XML :

JSON texto simples


JSON "auto-descritivo" (legvel)
JSON hierrquico (valores dentro de valores)
JSON pode ser analisado pelo JavaScript
JSON os dados podem ser transportadas usando AJAX

mas diferente da XML:

No utiliza a tag de fechamento


mais curto e simples
mais rpido de ler e escrever
Pode ser analisado usando a funo eval() do JavaScript
Utiliza matrizes
No possui palavras reservadas
Possui parser nas principais linguagens e navegadores

Assim, JSON menor do que XML, mais rpido e mais fcil de analisar.

O motivo principal para usar JSON que em aplicaes web com AJAX, JSON muito mais rpido e fcil de usar do que XML.

A sintaxe JSON um subconjunto da linguagem JavaScript (sendo independente desta repito).

As principais regras de sintaxe JSON so:

Dados JSON esto definidos aos pares no formato: nome : valor


Os dados so separados por vrgulas(,)
As chaves {} contm objetos
Os colchetes [] expressam matrizes/vetores

Basicamente o JSON se baseia na notao NOME : VALOR, onde NOME pode ser o nome que voc deseja usar para identificar um objeto e
VALOR o valor deste objeto.

A sintaxe JSON usa o par NOME : VALOR onde nome definido entre aspas, seguido por dois pontos, seguido por um valor: Ex: "nome" :
"Macoratti" , "font-size" : "14px;"

Em JSON os valores usados podem ser:

Um nmero (inteiro ou ponto flutuante)


Uma string (entre aspas)
Um booleano (verdadeiro ou falso)
Uma matriz (entre colchetes[])
Um objeto (entre chaves {})
nulo

Os objetos JSON so definidos entre chaves {} e podem conter mltiplos pares nome:valor:

Ex:
var pessoa = { "nome" : "Jose Carlos" , "sobrenome" : "Macoratti" };

var produto = {"ProdutoID":1, "Descricao":"Notebook 14", "ProdutoNumero":"PRD-5381"};

Os arrays em JSON so definidos entre colchetes [] e podem conter mltiplos objetos:

Ex1: var cores = [ "Azul" , "Branco", "Vermelho", "Amarelo" ];

Podemos acessar os dados usando a seguinte sintaxe:

<Script Language="JavaScript">
var cores = [ "Azul" , "Branco", "Vermelho", "Amarelo" ];
for (i=0; i<4; i++){
document.write( cores[i]+ "<br>" );
}
</Script>

Ex2:

var escola =
{
"alunos": [ { "nome":"Jose Carlos" , "sobrenome":"Macoratti" }, { "nome":"Ana" , "sobrenome":"Lima" }, {
"nome":"Pedro" , "sobrenome":"Ramos" } ]
}

Neste exemplo temos um objeto alunos definido como um array contendo 3 objetos . Cada objeto possui nome e sobrenome.

A primeira entrada no objeto array pode ser acessada da seguinte forma:

alunos[0].nome; => retona Jose Carlos

Para alterar um valor usamos a seguinte sintaxe:

alunos[0].nome = "Teste";

Vejamos a seguir a definio de uma estrutura de dados mais complexa usando JSON:

var agenda =
{
"nome": "Jose Carlos",
"sobrenome": "Macoratti",
"idade": 45,
"endereco": {
"endereco": "Rua Projetada, 200",
"cidade": "Santos",
"estado": "SP",
"cep": 11054058
},
"telefone": [
{
"tipo": "fixo",
"numero": "212 555-1234"
},
{
"tipo": "celular",
"numero": "646 555-4567"
}
]
}

O exemplo mostra a representao JSON de um objeto que descrev e uma pessoa. O objeto tem campos string para o nome e
sobrenome, um campo nmero para a idade, contm um objeto que representa o endereo da pessoa, e contm uma lista
(uma matriz) de objetos para os nmeros de telefone.

No exemplo acima onde temos a v ariv el agenda contendo os dados JSON, podemos usar a funo ev al() para criar o objeto
contato Jav aScript da seguinte forma: v ar contato = ev al("(" + agenda + ")");

Obs: a varivel ag enda prec isa estar envo lvida em parnteses para evitar ambig uidade c o m a sintaxe JavaSc ript.
A funo Jav aScript eval() pode ser usada para conv erter um texto JSON em um texto Jav aScript pois a funo ev al() usa o
compilador Jav aScript que ir analisar o texto JSON e um produzir um objeto Jav aScript. Para ev itar um erro de sintaxe o
texto precisa ser env olv ido por parnteses.

Abaixo um exemplo de utilizao da funo ev al() onde criamos um objeto Jav aScript a partir de um array JSON e exibimos o
segundo objeto do array:

<!DOCTYPE html>
<html>
<body>
<h2>Cria um Objeto a partir de uma string JSON</h2>
<p>
Nome: <span id="nome"></span><br>
Sobrenome: <span id="sobrenome"></span><br>
</p>
<script>
var txt = '{"funcionarios":[' +
'{"nome":"Jose Carlos","sobrenome":"Macoratti" },' +
'{"nome":"Janice","sobrenome":"Rachel" },' +
'{"nome":"Jefferson","sobrenome":"Andre" }]}';

var obj = eval ("(" + txt + ")");

document.getElementById("nome").innerHTML=obj.funcionarios[1].nome
document.getElementById("sobrenome").innerHTML=obj.funcionarios[1].sobrenome

</script>
</body>
</html>

Como a funo ev al() pode compilar e executar qualquer Jav aScript isso representa um potencial problema de segurana.Por
isso mais seguro usar um parser JSON para conv erter um texto JSON para um objeto Jav aScript.

Um parser ou analisador JSON ir reconhecer apenas o texto JSON e no v ai compilar os scripts.Em nav egadores que oferecem
suporte nativ o a JSON, os parsers JSON tambm so mais rpidos. O apoio ao JSON nativ o est includo nos nav egadores mais
nov os e no mais nov o padro ECMAScript (Jav aScript).

Atualmente nav egadores como o Firefox e Internet Explorer incluem caractersticas especiais para analisar (parsers) JSON,
sendo esse suporte ao nav egador nativ o mais eficiente e seguro do que o usar o recurso ev al() do Jav aScript.

Na continuao deste artigo v ou mostrar como usar JSON com ASP .NET : ASP .NET - Usando JSON para trocar informaes
entre um serv io W CF e um Web site Ajax

Veja os Destaques e nov idades do SUPER DVD Visual Basic (sempre


atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super


DVD .NET , confira...

Curso Bsico VB .NET - Vdeo Aulas

Quer aprender C# ??

Chegou o Super DVD C# com exclusiv o material de suporte e


v deo aulas com curso bsico sobre C#.

Curso C# Basico - Video Aulas

Gostou ? Compartilhe no Facebook Compartilhe no Tw itter

Referncias:
Seo VB .NET do Site Macoratti.net
Super DVD .NET - A sua porta de entrada na plataforma .NET
Super DVD Vdeo Aulas - Vdeo Aula sobre VB .NET, ASP .NET e C#
Seo C# do site Macoratti.net
Super DVD C#
Super DVD Visual Basic
Curso Bsico VB .NET - Vdeo Aulas
Curso C# Bsico - Vdeo Aulas
Seo de Jogos do site Macoratti .net
JSON
JSON W ikipdia, a enciclopdia liv re
JSON Tutorial
Json.NET

Jos Carlos Macoratti

Вам также может понравиться