585 votos

Seguridad convertir una cadena JSON en un objeto

Dada una cadena de datos JSON, ¿cómo se puede dar vuelta con seguridad que la cadena en un objeto de JavaScript?

Obviamente, usted puede hacer esto de manera insegura con algo así como...

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

...pero eso nos deja vulnerables a la cadena json que contiene otro código, que parece muy peligroso simplemente eval.

803voto

Jonathan. Puntos 15440

Por qué no:

JSON.parse(jsonString);

775voto

Alex V Puntos 8406

Si estás usando jQuery solo uso:

jQuery.parseJSON( jsonString );

Es exactamente lo que está buscando

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

102voto

John Puntos 5478

JSON.org ha JSON analizadores para muchos idiomas, incluyendo 4 diferentes para Javascript. Yo creo que la mayoría de la gente consideraría json2.js su goto aplicación.

43voto

Ronald Puntos 269

Uso simple código representado en el siguiente enlace.

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);

y a la inversa

var str = JSON.stringify(arr);

11voto

Mark Biek Puntos 41769

No estoy seguro acerca de otras maneras de hacerlo, pero aquí te explicamos cómo hacerlo en el Prototipo de JSON (tutorial).

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

Llamar evalJSON() con cierto como el argumento esteriliza la cadena entrante.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: