Transformar una cadena a una estructura JSON en javascript

En javascript podemos en base a una cadena, generar un dato estructurado en json.

cadena = "{ dato1: 'cadena del dato1', dato2: 'cadena del dato 2'}";

data = parseJSON(cadena);

alert(data.dato1); // podemos comenzar a utilizarlo como un dato JSON

La función en cuestión:



function parseJSON(data) {
try {
return eval("(" + data + ")");
} catch (e) {
alert("**ERROR JSON** "+e.message+" *** "+data);
return null;
}
}

Los usos posibles son muchos, pero para lo que mas lo utilizo es para desarrollar con jQuery.

Por ejemplo, en la función:

$.getJSON("server.php", {parametro: "dato1"},

function (data) {
//data es una estructura JSON
});

No llega a utilizar la funcion pasada como parámetro, si el dato JSON no está bien formado. Por lo que no tenemos forma de manejarlo, sobre todo cuando estamos en etapa de desarrollo.
En cambio si lo utilizamos:


$.get("server.php", {parametro: "dato1"},
function (cadena) {
data = parseJSON(cadena);
// ahora data tambien es una estructura JSON,
// pero nos devolverá un error si algo está fallando
});

Escribe un comentario