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.







Danilo é programador interface da AgênciaClick, corinthiano, vegan e geek. Gasta suas horas com xadrez, poker, vendo futebol e esporadicamente dedica 5 minutos semanais à Belinha - mas é mto provável que esse tempo agora seja dividido com o TidBits... Danilo sabe php, rails, javascript, xhtml, css, jquery, webstandards, seo, sql, opensocial, etc. E já fez sites para espn, fiat, fila, umbro, fgv, gatorade, petrobras, etc. Veja o 
Belinha agora é arquiteta de informação na RMG Connect, está cozinhando melhor, mas postando cada dia menos... ainda assim, sempre que dá aparece aqui no TidBits para dar seus pitacos sobre desenvolvimento... (Belinha é casada com o Danilo)
June 4th, 2009 at 1:13 am
[...] Solução número 1 – Pare de trabalhar com XML e comece a usar JSON. [...]
June 28th, 2009 at 10:23 pm
Já tinha visto algo sobre JSON mas não imaginei que erra tão simples assim.
July 30th, 2009 at 11:28 pm
Gosto de trabalhar com JSON por causa da velocidade se comparado ao parse do XML.
Boa explicação, simples e direta.
January 29th, 2010 at 8:50 am
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.
July 14th, 2010 at 7:31 am
Faltou data de quando foi postado!