Maison >interface Web >js tutoriel >Comment gérer les structures circulaires lors de la conversion d'objets en JSON dans Node.js ?

Comment gérer les structures circulaires lors de la conversion d'objets en JSON dans Node.js ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 18:50:10777parcourir

How to Handle Circular Structures When Converting Objects to JSON in Node.js?

Structures circulaires dans la sérialisation JSON

Lorsque vous rencontrez des structures circulaires lors de la conversion d'objets en JSON, la fonction JSON.stringify() provoque une "TypeError : Conversion de la structure circulaire en JSON" ou erreur "TypeError : valeur d'objet cyclique". Pour résoudre ce problème, vous pouvez supprimer les références circulaires et chaîner les données restantes.

Dans Node.js, le module utilitaire intégré fournit la méthode util.inspect(object). Cette fonction remplace automatiquement les références circulaires par "[Circulaire].".

Importation du module

Avant d'utiliser la méthode, vous devez l'importer :

import * as util from 'util';

Utilisation

Pour utiliser la méthode, passez simplement l'objet à inspecté :

console.log(util.inspect(myObject));

Options

Vous pouvez également passer un objet d'options optionnel pour personnaliser l'inspection :

inspect(myObject[, options: {showHidden, depth, colors, showProxy, ...moreOptions}]);

Exemple

Compte tenu de ce qui suit object :

var obj = {
  a: "foo",
  b: obj
};

À l'aide de util.inspect, vous pouvez chaîner l'objet comme suit :

util.inspect(obj);

Cela produira la sortie suivante de type JSON :

{ a: 'foo', b: '[Circular]' }

Vous pouvez désormais envoyer l'objet sérialisé en toute sécurité sans rencontrer d'erreurs de référence circulaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn