O que é JSON, como e quando utilizar?

JSON (JavaScript Object Notation) é uma estrutura de dados em javascript.
Apesar de começarem a falar muito disso recentemente, JSON não é uma tecnologia nova, faz parte do javascript puro e não precisa de nenhum script pra trabalhar.

O JSON pode substituír o XML, e faz isso muito bem na hora de trabalhar com respostas em AJAX.
A estrutura de dados fica mais simples de trabalhar e o tempo de execução de um script lendo dados em JSON é dezenas de vezes mais rápido do que ler um conteúdo XML.

As principais linguagens de programação server side tem suporte pra escrever dados em JSON.

Veja o exemplo da estrutura de dados abaixo

var dados = {
	"aluno" : [
		{"nome":"João", "provas":  [ { "nota":8 }, {"nota":6}, {"nota":10 }, {"nota":2 } ] },
		{"nome":"Maria", "provas": [ { "nota":3}, {"nota":5}, {"nota":8 }, {"nota":1 } ] },
		{"nome":"Pedro", "provas": [ { "nota":7}, {"nota":6}, {"nota":6 }, {"nota":8 } ] },
	]
};

Veja como seria a mesma estrutura de dados em XML:

<?xml version='1.0' encoding='utf-8'?>
<aluno>
	<nome>Danilo</nome>
	<provas>
		<prova nota=8/>
		<prova nota=6/>
		<prova nota=10/>
		<prova nota=2/>
	</provas>
</aluno>
<aluno>
	<nome>Belinha</nome>
	<provas>
		<prova nota=3/>
		<prova nota=5/>
		<prova nota=8/>
		<prova nota=1/>
	</provas>
</aluno>
<aluno>
	<nome>Carla</nome>
	<provas>
		<prova nota=7/>
		<prova nota=6/>
		<prova nota=6/>
		<prova nota=8/>
	</provas>
</aluno>

Apesar do xml ter mais chaves e colchetes, fica mais facil de ler os dados:

var jsonData = eval(dados);

E pronto, bem mais simples que xml!

Depois para obter os dados funciona assim:

document.write(jsonData.aluno[0].nome);
// Escreve o nome do primeiro aluno: "Danilo";

document.write(jsonData.aluno[1].provas.nota[3]);
// Escreve a nota da última prova da Belinha ;

document.write(jsonData.aluno[2].provas.nota[0]);
// Escreve a nota da primeira prova da Carla ;

for(i=0;i<jsonData.aluno.length;i++){
	document.write(jsonData.aluno[i].nome);
}
// escreve o nome de todos os alunos

for(i=0;i<jsonData.aluno.length;i++){
	document.write(jsonData.aluno[i].nome);
	for(j=0;j<jsonData.aluno[i].provas.length;j++){
		document.write(jsonData.aluno[i].provas[j].nota);
	}
}
// escreve o nome e todas as notas de todos os alunos

No site JSON.org pode encontrar mais informações, em português.

11 thoughts on “O que é JSON, como e quando utilizar?

  1. Pingback: O Bug do parse XML no IE com o ajax do jQuery | TidBits

  2. Já tinha visto algo sobre JSON mas não imaginei que erra tão simples assim.

  3. Bom dia.

    Muito bom e útil o artigo. Quero informar que a linha “Apesar do xml ter mais chaves e colchetes, fica mais facil de ler os dados:” está errada. São os JSON que possuem mais chaves e colchetes.

    Parabens! Até breve.

  4. Nossa senhora, já tinha ouvido falar disso, eu tava me preocupando com XML e AJAX já numas página, fiquei sabendo desse JSON a pouco tempo, mas gostei muito desse eval().
    Ao contrário de usar o DOM para explorar o XML, isso é muito chato, prefiro o eval() haahah
    muito bom !

  5. Pingback: ASP.NET Web Api, a melhor opção para serviços RESTful em .NET! | O desenvolvedor eclético!

  6. A codificação apesar de não ter sido especificada, provavelmente é JavaScript.

    e quando a velocidade de leitura JSON x XML, como podemos comprovar o ganho de performance entre elas?

    Obrigado

  7. Pingback: ASP.NET Webservice retornando JSON | Thiago Lunardi .NET

Leave a Reply

Your email address will not be published. Required fields are marked *