Als je een string met JSON-gegevens hebt, hoe kun je die string dan veilig omzetten in een JavaScript-object?
Uiteraard kun je dit onveilig doen met iets als...
var obj = eval("(" + json + ')');
...maar dat maakt ons kwetsbaar voor de json string die andere code bevat, die het erg gevaarlijk lijkt om gewoon te evalueren.
Edit: Dit antwoord is voor IE < 7, voor moderne browsers check Jonathan's antwoord hierboven.
Bewerk: Dit antwoord is verouderd en Jonathan's antwoord hierboven (JSON.parse(jsonString)
) is nu het beste antwoord.
JSON.org heeft JSON parsers voor vele talen waaronder 4 verschillende voor Javascript. Ik denk dat de meeste mensen json2.js als hun goto implementatie zouden beschouwen.
Ik'ben niet zeker van andere manieren om het te doen, maar hier'is hoe je het doet in Prototype (JSON tutorial).
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport){
var json = transport.responseText.evalJSON(true);
}
});
Het aanroepen van evalJSON() met true als argument sanitiseert de inkomende string.