ejemplo array javascript jquery json

array - string to json javascript



¿Cómo convierto una cadena JSON a un objeto JavaScript en jQuery? (7)

Tengo una cadena en mi base de datos. Quiero ingresar a mi página y convertirla a un objeto de JavaScript.

[ {id: 1,title: "Long Event", start: new Date(2009, 5, 6, 14, 0),end: new Date(2009, 5, 11)}, {id: 2,title: "Repeating Event", start: new Date(2009, 5, 2)}, {id: 3,title: "Meeting", start: new Date(2009, 5, 20, 9, 0)}, {id: 4,title: "Click for Facebook", start: new Date(2009, 5, 27, 16),end: new Date(2009, 5, 29), url: "http://facebook.com/"} ]

¿Cómo puedo hacer esto usando jQuery?



¿Qué tal eval ()?

var obj = eval (jsonString);



Eche un vistazo al plugin JQuery-json

var thing = {plugin: ''jquery-json'', version: 1.3}; var encoded = $.toJSON(thing); //''{"plugin": "jquery-json", "version": 1.3}'' var name = $.evalJSON(encoded).plugin; //"jquery-json" var version = $.evalJSON(encoded).version; // 1.3


La secuencia de comandos "oficial" json2.js incluye 2 métodos: uno que analizará con seguridad cualquier serie JSON a un objeto (JSON.parse) y otro que convertirá un objeto en una cadena JSON (JSON.stringify)

El script se puede encontrar here .

En mi publicación anterior, sugerí eval (), pero en realidad hay una manera ligeramente mejor de evaluar JSON (si no quieres usar el script json2.js):

var obj = (new Function("return " + json))();

usando el script json2.js:

var obj = JSON.parse(json);


Si bien puedes usar el comando eval, primero debes verificarlo para mayor seguridad. Yo suelo:

var data = !(/[^,:{}/[/]0-9./-+Eaeflnr-u /n/r/t]/. test(source.replace(/"(//.|[^"//])*"/g, ''''))) && eval(''('' + source + '')'');

Eso debería funcionar (se ha ajustado un poco desde el original). El punto clave es que la cadena JSON está marcada para evitar que las funciones y otros códigos ejecutables se filtren. (La primera expresión regular es el bit importante).

Dicho esto, el plugin JSON es muy bueno.


utilizar

jQuery.getJSON(url, data, callback)

o pase "json" como el type parameter:

jQuery.get( url, data, callback, type )

lo mismo se aplica a:

jQuery.post( url, data, callback, type )

* todo en caso de que esté buscando la "cadena" de una solicitud de ajax