Json é um conjunto de chaves e dados e podem ser interpretados por qualquer linguagem.
É derivado do JavaScript, linguagem de programação simples para representar estruturas de dados e arrays, chamados de objetos.
Embora JSON foi baseado em um subconjunto do JavaScript, é considerada uma linguagem independente de formato de dados.
O formato JSON foi especificado originalmente por Douglas Crockford.
É usado principalmente para transmição de dados entre o lado cliente e o lado servidor.
JSON se assemelha muito com as matrizes do JavaScript, mas pode armazenar os mesmos dados que os documentos XML.
O exemplo a seguir mostra a representação JSON de um objeto que descreve uma pessoa.
{
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber":
[
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}
Veja como ficaria no XML:
<person firstName="John" lastName="Smith" age="25">
<address streetAddress="21 2nd Street" city="New York" state="NY" postalCode="10021" />
<phonenumbers>
<phonenumber type="home" number="212 555-1234"/>
<phonenumber type="fax" number="646 555-4567"/>
</phonenumbers>
</person>
Observe que, embora ambas as formas JSON e XML podem transportar os mesmos dados, o exemplo (segundo) XML também traz conteúdo semântico.
Agora vamos a um exemplo prático. Criaremos agora um JSON para organizar os dados pessoais:
<html>
<body>
<script type="text/javascript">
var Dados = { "item": [
{
"firstName": "Pietro",
"lastName": "Gaião",
"phone": { "ddd": 21, number: "1234-5678" }
},
{
"firstName": "Tatiana",
"lastName": "Tixeira",
"phone": { "ddd": 21, number: "1234-5678" }
},
{
"firstName": "Arthur",
"lastName": "Gaião",
"phone": { "ddd": 21, number: "1234-5678" }
}
]};
alert(Dados.item[0].firstName);
alert(Dados.item[0].phone.number);
</script>
</body>
</html>
Através da função alert(); do javascript, iremos exibir o primeiro nome (firstName):
alert(Dados.item[0].firstName);
Notem a pequena diferença quando resgatamos o número do telefone.
alert(Dados.item[0].phone.number);
Espero que tenham entendido bem, procurei como sempre ser o mais breve possível.
Qualquer dúvida me mandem uma mensagem.
Popularity: 28% [?]


Vc teria um exemplo de como transmitir dados entre um aplicativo de servidor e web, servindo como alternativa ao XML.