Java Script

Solucionar error: “Converting circular structure to JSON”

En muchas ocasiones programando en Java Script nos hemos encontrado con el error “Uncaught TypeError: Converting circular structure to JSON”, en este tutorial aprenderemos a solucionar este problema y entender porque ocurre.

¿Que es “Uncaught TypeError: Converting circular structure to JSON”?

Es un error que puede ocurrir en varios momentos del desarrollo en Java Script, pero es originado cuando dos JSON se referencian entre sí (objetos cíclicos) y se les aplica la función stringify. Por ejemplo en el siguiente caso vamos a obtener el error mencionado:

var json1 = {id: 1};
// El json2 tiene una referencia al json1
var json2 = {id: 2, "json1": json1};

// Ahora el json1 tiene una referencia al json2  
json1.json2 = json2;

// Cuando queremos pasar el json2 a una cadena vamos a obtener el error	  
JSON.stringify(json2);

Para solucionar este problema tenemos dos opciones, una es quitar una de las dos referencias (la más fácil) y la otra es utilizar el segundo parámetro replacer de la función stringify para transformar los valores que serán convertidos en una cadena dentro de la función. En nuestro caso vamos a remplazar el JSON por su id:

// Ahora remplazamos el json1 por su id
console.log(JSON.stringify(json2, function( key, value) {
  if(key == 'json1') { 
    return value.id;
  } else {
    return value;
  };
}));

Bueno gente, esto es todo, espero que les sea de gran utilidad y ante cualquier problema no duden en dejar un comentario.

Compartilo en
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestEmail this to someone

AboutJosé Di Meglio

Apasionado de la tecnología y programación. Aportando información gratuita sobre el mundo de la informática.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *