Objekt In Json Javascript Konvertieren

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Eine kreisförmige Struktur ist ein Objekt, das sich auf sich selbst bezieht. Im folgenden Beispiel wird das Objekt (obj) als Wert des Standortschlüssels referenziert.

Wie XML wird JSON (JavaScript Object Notation) zum Speichern und Austauschen von Daten verwendet. JSON ist viel einfacher zu parsen oder aufzuteilen als XML und wird vorzugsweise verwendet, wenn Objekte mit der Methode JSON.stringify () in Strings konvertiert werden.

Fehler beim Konvertieren von kreisförmigen Strukturen in JSON

JSON unterstützt keine Objektreferenzen, daher führt der Versuch, ein JSON-Objekt zu verketten, das auf sich selbst verweist, zu einem Tippfehler. Dies ist ein Fehler, der generiert werden kann, wenn Sie versuchen, einen Wert zu ändern, der nicht geändert werden kann, oder wenn Sie einen Wert unangemessen verwenden.

Screenshot 402

Mögliche Lösungen

JSON.chaaîne ify () konvertiert nicht nur die akzeptablen Produkte von Ketten, es enthält auch einen Ersetzungsparameter, der die Werte ersetzen kann, wenn die übertragene Funktion so spezifiziert ist. Analysieren Sie den folgenden Code, um zu verstehen, wie dies geschieht.

In unserem replaceFunc hier oben haben wir Rufen Sie WeakSet auf, das ein Objekt ist, das lose Objekte oder Objektreferenzen speichert. Jedes Objekt eines WeakSet kann nur einmal vorkommen, wodurch Wiederholungen oder Zirkulationen herausgefiltert werden r-Daten. Das Schlüsselwort new ist ein Operator, der ein leeres Objekt erstellt.

In unserer return-Anweisung haben wir die if-Anweisungen verschachtelt. Unsere erste if-Anweisung verwendet den typeof-Operator, der den Typ des Grundelements (Undefiniert, Null, Boolean, Zahl, Zeichenfolge, Funktion, BigInt, Symbol) zur Auswertung zurückgibt.

Wenn unser Werttyp genau gleich einem Objekt ist und der Wert dieses Objekts nicht null ist, wird es beim zweiten fortgesetzt if-Anweisung, prüfen, ob der Wert im WeakSet () enthalten ist.

Wenn wir JSON.stringify aufrufen () übergeben wir sowohl unsere ursprüngliche kreisförmige Struktur als auch unsere Ersatzfunktion.

Dies gibt uns das gewünschte String-Ergebnis in der Konsole.

; "{" name ":" John "," age ": 23," gender ":" Male "}"

Andere mögliche Lösungen für diesen Fehler sind die Verwendung von Bibliotheken wie z als circular-json, was ein zirkulärer JSON-Parser ist, oder cycle.js , erstellt für IE8-Benutzer.

Zirkuläres JSON serialisiert und deserialisiert ansonsten gültige JSON-Objekte, die Zirkelverweise zu und von einem speziellen JSON-Format enthalten.

Schlussfolgerung

JSON wird nicht unterstützt Objektreferenzen. Wenn Sie also versuchen, ein JSON-Objekt zu verketten, das auf sich selbst verweist, tritt ein Tippfehler auf.

Eine kreisförmige Struktur ist ein Objekt, das auf sich selbst verweist. Um solche Objekte verketten zu können, Entwickler können den replace-Parameter in der stringify()-Methode verwenden und sicherstellen, dass die übergebene Funktion wiederholte oder zirkuläre Daten herausfiltert.

Usin g-Bibliotheken wie Circular-Json können ebenfalls eine Lösung für diesen Fehler sein.