Dada uma seqüência de dados JSON, como você pode transformar com segurança essa seqüência em um objeto JavaScript?
Obviamente podes fazer isto sem segurança com algo como...
var obj = eval("(" + json + ')');
...mas isso deixa-nos vulneráveis à cadeia json que contém outro código, que parece muito perigoso simplesmente avaliar.
Edit: Esta resposta é para IE < 7, para navegadores modernos verifique a resposta de Jonathan acima.
Edit: Esta resposta está desatualizada e a resposta de Jonathan acima (JSON.parse(jsonString)
) é agora a melhor resposta.
JSON.org tem analisadores do JSON para muitos idiomas, incluindo 4 diferentes para Javascript. Eu acredito que a maioria das pessoas consideraria json2.js a sua implementação goto.
Não tenho certeza sobre outras formas de fazê-lo, mas aqui está como você o faz em Prototype (JSON tutorial).
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport){
var json = transport.responseText.evalJSON(true);
}
});
Chamando evalJSON() com true como o argumento saneia a string recebida.