JavaScript Object Notation
A pedidos, resolvi escrever este artigo sobre JSON, que eu havia “pulado”… Como não há muito para ser explicado, segui a mesma linha do site oficial.
O JSON é um subconjunto da notação de objeto do JavaScript. Sendo o JSON um subconjunto do JavaScript, ele pode ser usado sem nenhum problema, ou seja, é só colocar lá que roda (simplificação péssima…). Veja um exemplo simples:
var JSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random//.*"}
]
};
Criamos um objeto contendo um membro bindings, que contém um array contendo 3 objetos, cada um contendo os membros ircEvent, method e regex. Se você analisar, é quase a mesma coisa que criar uma classe através de um construtor, e depois instancia-la em uma variável, criando um objeto. É quase tudo igual.
Para acessar os membros de um objeto, usamos o “dot-structure”, como para acessar atributos de objetos normais (viu como é parecido? Até o nome), assim:
JSONObject.bindings[0].method; // "newURI"
Texto JSON (demorei pra entender pelo site) é um objeto JSON normal, mas em uma string, ou seja, tudo entre aspas. Você já deve ter visto isso em Ajax nos meus posts anteriores. Para transforma-lo em um objeto, usamos a função eval(), assim:
var myObject = eval( '(' + JSONText + ')' );
De acordo com o site, não há problema algum utilizar a função eval() quando nós mesmos provemos o texto. Mas se por acaso o objeto seja provido de outra forma (pelo usuário, por exemplo), há um pequeno risco de segurança. Para contornar o problema, você encontra um conversor no site.
Não esqueça de verificar se o seu JSON é “válido”. Não há validação para isto, e também não causa nenhum problema caso nada seja validado. Mas o bom senso é quem manda. Para ficar tudo certo, use JSON Válido, com aspas duplas no nome dos membros.







Fala Julio, muito bom você puxar esse assunto, o JSON é muito útil e a versão mais recente do PHP (5.2.0) já inclui funções para (de)codificar JSON.
Mas cara, JSON é string….
var a = {}; // object
é exatamente o mesmo que (um atalho para):
var a = new Object(); // object
var a = ‘{}’; // eu acho que apenas esse é JSON…
——-
Há uns meses postei esse script no phpbrasil, para converter variaveis PHP para JSON e vice-versa, acho que pode interessar: http://phpbrasil.com/scripts/script.php/id/3206
Abraço, Cau
muito bom, agora é só dar uma treinada…
abracos
Na verdade, JSON não é string. Podemos tornar strings JSON em objetos JSON. Se bem que JSON pode ser os dois. JSON é JSON, né… (usei 6 JSON, opa 7, credo!)