Ele te persegue há tempos; está alí, pronto para te matar facilitar a vida… sim o JSON está aí, há muito tempo para te ajudar. O JavaScript Object Notation (ou JSON) segundo a wikipedia “… é um formato leve para intercâmbio de dados computacionais. JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente.”. Tem aplicação desde a manutenção de código javascript até em interface com bancos NoSQL, como o CouchDB e o MongoDB, e mais…
JSON é subconjunto do padrão ECMA-262 3ª edição (ou seja, desde Dezembro de 1999). o site json.org foi ao ar em 2002. Três anos depois o Yahoo disponibilizou alguns de seus serviços no formato; o Google um ano depois do concorrente com o GData.
Basicamente o JSON descreve informação. No Javascript você define suas variáveis com Json:
var _boolean = true;
var _integer = 42;
var _float = 1.54;
var _string = "Esta é uma string";
var _null = null;
var _array = [1,2,3];
var _objeto = {
"id": 1234,
"nome": "Duodraco",
"telefones": [5252525, 88833322],
"ativo":true
}
Sim, os dados escalares também são considerados JSON, afinal os inteiros e strings são objetos para o Javascript, e o JSON é simplesmente a notação. Veja que objetos e arrays podem conter em seus elementos/atributos outros tipos descritos no formato (strings, floats, outros arrays ou objetos, etc…).
Tendo o domínio do formato, a evolução da sua calvície vai desacelerar (não vai parar, até porque o IE está aí pra isso). Você tem em suas mãos uma ferramenta quase que divina para a organização e legibilidade, nativa e fácil de usar.
É humanamente compreensível e serve muito bem no PHP, seja como arquivo de configuração, transporte de dados ou qualquer outra coisa. Existem as seguintes funções desde o PHP 5.2: json_encode e json_decode, que retornam respectivamente uma string em formato JSON — dado um valor PHP — e o outro um valor PHP — dada uma string JSON. Vale lembrar que o json_decode interpretará o json de maneira estrita, ou seja, nada de atributos do objeto sem aspas, ou objetos com vírgulas a mais.
A função json_encode tem um 2º parâmetro desde o PHP 5.3, que refere-se a opções para a “tradução” do valor php para a string json = com JSON_FORCE_OBJECT o retorno será sempre um objeto, caso o valor passado seja um array, por exemplo, e com JSON_HEX_QUOT sua string virá com possíveis aspas nos valores de atributos ou itens do array escapados.
<?php
$obj = [
'name' => 'Xpto é melhor que "foo"',
'id' => 256
];
echo json_encode($obj,JSON_HEX_QUOT | JSON_FORCE_OBJECT);
//{"name":"Xpto é melhor que u0022foou0022","id":256}
JSON é também o formato da resposta que alguns bancos de dados orientados a documento, como MongoDB e CouchDB, geralmente devolvem para seus clientes.
Só posso dizer = domine o formato, pois ele está aí para ser usado. É simples e rápido. No PHP você não precisa de nada a mais para interpretá-lo. Em aplicações web com HttpRequests que você utiliza XML aberto, prefira o JSON = é muito mais leve.
Não tenha medo!