From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../reference/errors/cyclic_object_value/index.md | 57 +++++++++++----------- 1 file changed, 29 insertions(+), 28 deletions(-) (limited to 'files/fr/web/javascript/reference/errors/cyclic_object_value') diff --git a/files/fr/web/javascript/reference/errors/cyclic_object_value/index.md b/files/fr/web/javascript/reference/errors/cyclic_object_value/index.md index aa50f933f9..58de02ab6d 100644 --- a/files/fr/web/javascript/reference/errors/cyclic_object_value/index.md +++ b/files/fr/web/javascript/reference/errors/cyclic_object_value/index.md @@ -8,45 +8,47 @@ tags: translation_of: Web/JavaScript/Reference/Errors/Cyclic_object_value original_slug: Web/JavaScript/Reference/Erreurs/Cyclic_object_value --- -
{{jsSidebar("Errors")}}
+{{jsSidebar("Errors")}} -

Message

+## Message -
TypeError: cyclic object value (Firefox)
-TypeError: Converting circular structure to JSON (Chrome and Opera)
-TypeError: Circular reference in value argument not supported (Edge)
-
+ TypeError: cyclic object value (Firefox) + TypeError: Converting circular structure to JSON (Chrome and Opera) + TypeError: Circular reference in value argument not supported (Edge) -

Type d'erreur

+## Type d'erreur -

{{jsxref("TypeError")}}

+{{jsxref("TypeError")}} -

Quel est le problème ?

+## Quel est le problème ? -

Lorsqu'on appelle la méthode {{jsxref("JSON.stringify()")}}, les structures de références cycliques ne peuvent pas être converties en chaîne de caractères car le format JSON ne prend pas en charge les références (bien qu'un brouillon IETF existe).

+Lorsqu'on appelle la méthode {{jsxref("JSON.stringify()")}}, les structures de références cycliques ne peuvent pas être converties en chaîne de caractères car [le format JSON](https://www.json.org/) ne prend pas en charge les références (bien qu'[un brouillon IETF existe](http://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03)). -

Exemples

+## Exemples -

Avec une structure circulaire comme la suivante :

+Avec une structure circulaire comme la suivante : -
var a = {};
+```js
+var a = {};
 var b = {};
 a.child = b;
 b.child = a;
-
+``` -

{{jsxref("JSON.stringify()")}} échouera :

+{{jsxref("JSON.stringify()")}} échouera : -
JSON.stringify(a);
+```js example-bad
+JSON.stringify(a);
 // TypeError: cyclic object value
-
+``` -

Il est nécessaire de contrôler l'existence de cycles avant la conversion en chaîne de caractères. On peut par exemple fournir une fonction de remplacement comme deuxième argument de la fonction {{jsxref("JSON.stringify()")}}.

+Il est nécessaire de contrôler l'existence de cycles avant la conversion en chaîne de caractères. On peut par exemple fournir une fonction de remplacement comme deuxième argument de la fonction {{jsxref("JSON.stringify()")}}. -
const getCircularReplacer = () => {
+```js
+const getCircularReplacer = () => {
   const seen = new WeakSet();
-  return (key, value) => {
-    if (typeof value === "object" && value !== null) {
+  return (key, value) => {
+    if (typeof value === "object" && value !== null) {
       if (seen.has(value)) {
         return;
       }
@@ -57,13 +59,12 @@ b.child = a;
 };
 
 JSON.stringify(circularReference, getCircularReplacer());
-// {"otherData":123}
+// {"otherData":123} +``` -

On peut également utiliser une bibliothèque ou une fonction utilitaire pour ce scénario. comme cycle.js.

+On peut également utiliser une bibliothèque ou une fonction utilitaire pour ce scénario. comme [cycle.js](https://github.com/douglascrockford/JSON-js/blob/master/cycle.js). -

Voir aussi

+## Voir aussi - +- {{jsxref("JSON.stringify")}} +- [cycle.js](https://github.com/douglascrockford/JSON-js/blob/master/cycle.js) qui introduit deux fonctions : `JSON.decycle` `et JSON.retrocycle` qui permettent d'encoder et de décoder des structures cycliques en JSON. -- cgit v1.2.3-54-g00ecf