Entendendo estrutura Json

Pessoal, estou criando o tópico para reunirmos informações de livros e fontes de pesquisa como video aulas e tutoriais sobre os assuntos acima.
VLW

Estou sentindo dificuldade no seguinte aspecto a Json, como os dados chegam até nós? session? querry?
todos os tutoriais que eu achei falam sobre a estrutura do Json, mas ele vai em um arquivo .json? creio que nao seja .xml…
mas enfim, alguem poderia me indicar um conteudo que eu comece do zero?

geralmente os dados vão retornados como um array.

entao cara, mas só um detalhe… de onde vem esse array? ele vira uma session? ele vira oque? isso que eu nao consigo entender.

o javascript chama um arquivo ou servlet, q por exemplo faz uma consulta no banco de dados procurandos as cidades daquele estado, o retorno dessa consulta vc deve converter em formato json, ai o java/asp/php envia essa resposta para o javascript… se quiser tenhos uns exemplos simples em php.

JSON é um formato de troca de dados. Basicamente é uma resposta do servidor em texto puro seguindo regras definidas, escrevi um tutorial sobre o formato há algum tempo http://www.milfont.org/tech/2007/11/04/o-que-e-json/

Quando voce faz uma requisição [REQUEST] para um servidor, esse processa a resposta [RESPONSE] dos dados em texto puro seguindo o formato estabelecido, apenas isso. Via de regra utilizamos o Mimetype “application/json” para fazer esse request e informar ao servidor que me devolva um json. Alguns casos o servidor espera essa informação do mimetype no próprio cabeçalho da requisição com os parametros “Content-Type”:“application/json” e “Accept”:“application/json”.

JSON quer dizer JavaScript Object Notation, nada mais é do que uma forma de marcação para dados, é análogo ao XML, porém, menos verbose.

As vatangens do JSON para o mundo web é que ele do fato de ser menos verbose, o JavaScriot o interpreta naturalmente, sem precisar de parafernálhas para interpretá-lo.

Por exemplo, como eu uso o Node.JS. Eu posso criar um JSON nessa estrutura:

pessoa = {
nome : ‘Eduardo Costa’,
idade : 32
}

E do ladod o node posso ler assim:

var nomePessoa = pessoa.nome;

No JS, o JSON também é usado para criar as famosas “namespace” para você melhor organizar o seu código e evitar global variables.

[quote=denisspitfire]Estou sentindo dificuldade no seguinte aspecto a Json, como os dados chegam até nós? session? querry?
todos os tutoriais que eu achei falam sobre a estrutura do Json, mas ele vai em um arquivo .json? creio que nao seja .xml…
mas enfim, alguem poderia me indicar um conteudo que eu comece do zero?[/quote]

JSON signigica JavaScript Object Notation, eh somente uma representacao de dados no formato de um objeto javascript. Hoje em dia JSON eh muito usando, quando nos precisamos consumir dados de um servico REST por exemplo. Mas vc pode ate criar uma variavel dentro do seu script em “formato” JSON ou ate mesmo como vc disse ler de um arquivo .json, que eh nada mais que um arquivo texto.

JSON, pode ser construido de duas formas:

1. Uma colecao de dados representados no formato Chave-Valor

{
    "cliente": {
        "nome": "Joao da Silva",
        "telefone": "9999999"
    }
}

2. Array

{
    "clientes": [
        {
            "cliente": {
                "nome": "Joao da Silva",
                "telefone": "9999999"
            }
        },
        {
            "cliente": {
                "nome": "Trololo Oliveira",
                "telefone": "787898899"
            }
        }
    ]
}

For exemplo, vamos dizer que eu fiz uma request AJAX para um servico REST e eu recebi de retorno esse array de clientes acima.

dojo.ready(function() {

       // coloquei o JSON numa variavel para ficar mais facil.
	var data = {
		"clientes" : [{
			"cliente" : {
				"nome" : "Joao da Silva",
				"telefone" : "9999999"
			}
		}, {
		       "cliente" : {
				"nome" : "Trololo Oliveira",
				"telefone" : "787898899"
			}
		}]
	};

	var numClientes = data.clientes.length;

	for(var i = 0; i< numClientes; i++) {
		var cliente = data.clientes[i].cliente;
		console.log("Cliente : " + cliente.nome);
		console.log("Cliente fone : " + cliente.telefone);
		console.log("--------------------------------------");
	}

});

Dando uma olhada no console:

Cliente : Joao da Silva
Cliente fone : 9999999
Cliente : Trololo Oliveira
Cliente fone : 787898899

Se vc for desenvolver aplicativos que retornam JSON para o front-end da sua aplicacao eh sempre uma boa ideia testar os dados para ver se o JSON esta sendo gerado corretamente. Tem um site muito bom pra fazer isso:

E se vc quiser testar o seu codigo Javascript:

http://jslint.com/

Espero ter ajudado!

//Daniel