1421 votes

En toute sécurité en tournant une chaîne JSON en objet

Étant donné une chaîne de données JSON, comment pouvez-vous tourner en toute sécurité en chaîne dans un objet JavaScript?

Évidemment, vous pouvez le faire mal avec quelque chose comme...

var obj = eval("(" + json + ')');

...mais qui nous laisse vulnérables à la chaîne json contenant un autre code, qui semble très dangereux de simplement eval.

2055voto

Jonathan. Points 15440

Pourquoi ne pas tout simplement:

JSON.parse(jsonString);

888voto

Alex V Points 8406

Si vous utilisez jQuery suffit d'utiliser:

jQuery.parseJSON( jsonString );

C'est exactement ce que vous cherchez

http://api.jquery.com/jQuery.parseJSON/

163voto

John Points 5478

JSON.org a JSON analyseurs pour de nombreuses langues, dont 4 différentes pour Javascript. Je crois que la plupart des gens considèrent json2.js leur goto mise en œuvre.

75voto

Ronald Points 269

Utilisation simple code représentés dans le lien suivant.

http://msdn.microsoft.com/es-es/library/ie/cc836466%28v=vs.94%29.aspx

var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);

et l'inverse

var str = JSON.stringify(arr);

24voto

Mark Biek Points 41769

Je ne suis pas sûr d'autres façons de le faire, mais voici comment vous le faites dans le Prototype (JSON tutoriel).

new Ajax.Request('/some_url', {
  method:'get',
  requestHeaders: {Accept: 'application/json'},
  onSuccess: function(transport){
    var json = transport.responseText.evalJSON(true);
  }
});

L'appel de evalJSON() avec vrai que l'argument assainit la future chaîne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X