Kako lahko niz podatkov JSON varno spremenite v objekt JavaScript, če imate na voljo niz podatkov JSON?
Očitno lahko to storite nevarno z nečim, kot je...
var obj = eval("(" + json + ')');
... vendar smo s tem izpostavljeni temu, da niz json vsebuje drugo kodo, kar se zdi zelo nevarno za preprosto evalvacijo.
Urejanje: Ta odgovor velja za IE < 7, za sodobne brskalnike preverite odgovor Jonathana zgoraj.
Edit: Ta odgovor je zastarel in Jonathan's answer above (JSON.parse(jsonString)
) je zdaj najboljši odgovor.
JSON.org ima razčlenjevalnike JSON za številne jezike, vključno s štirimi različnimi za Javascript. Verjamem, da bi večina ljudi menila, da je json2.js njihova goto implementacija.
Nisem prepričan o drugih načinih, kako to storiti, toda tukaj je opisano, kako to storite v Prototype (JSON tutorial).
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport){
var json = transport.responseText.evalJSON(true);
}
});
Klic evalJSON() z argumentom true razkuži vhodni niz.
Če uporabljate jQuery, lahko naredite tudi $.getJSON(url, function(data) { });
Potem lahko naredite stvari, kot so data.key1.something
, data.key1.something_else
itd.