Konwertuj obiekt na Json JavaScript

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

Okrężna struktura to obiekt, który odwołuje się do siebie. W poniższym przykładzie obiekt (obj) jest przywoływany jako wartość klucza lokalizacji.

Podobnie do XML, do przechowywania i wymiany danych jest używany JSON (JavaScript Object Notation). JSON jest znacznie łatwiejszy do analizowania lub dzielenia niż XML i najlepiej jest używany podczas konwertowania obiektów na ciągi za pomocą metody JSON.stringify ().

Błąd podczas konwertowania struktur kołowych na JSON

JSON nie obsługuje odwołań do obiektów, więc próba połączenia obiektu JSON, który odwołuje się do samego siebie, spowoduje literówkę. Jest to błąd, który może zostać wygenerowany, gdy próbujesz zmienić wartość, której nie można zmienić lub gdy używasz wartości w niewłaściwy sposób.

Screenshot 402

Możliwe rozwiązania

JSON.chaaîne ify() konwertuje nie tylko dopuszczalne produkty łańcuchów, ale zawiera również parametr zastępczy, który może zastąpić wartości, jeśli przesyłana funkcja jest do tego określona. przeanalizuj poniższy kod, aby zrozumieć, jak to się dzieje.

W naszym replaceFunc powyżej, wywołaj WeakSet , który jest obiektem przechowującym luźne obiekty lub referencje do obiektów. Każdy obiekt WeakSet może pojawić się tylko raz, odfiltrowując w ten sposób powtarzające się lub krążące r danych. Słowo kluczowe new jest operatorem, który tworzy pusty obiekt.

W naszej instrukcji return zagnieździliśmy instrukcje if. Nasza pierwsza instrukcja if używa operatora typeof, który zwraca typ elementu pierwotnego (Undefined, Null, Boolean, Number, String, Function, BigInt, Symbol) do oceny.

Jeżeli nasz typ wartości jest ściśle równy obiektowi, a wartość tego obiektu nie jest równa zeru, będzie kontynuowane na drugim instrukcja if, sprawdzanie, czy wartość znajduje się w WeakSet().

Kiedy wywołamy JSON.stringify (), przechodzimy zarówno do naszej oryginalnej struktury kołowej, jak i do naszej funkcji zastępczej.

To da nam żądany wynik ciągu w konsoli.

; "{" name ":" John "," wiek ",": 23," gender ":" Mężczyzna "}"

Inne możliwe rozwiązania tego błędu to użycie bibliotek takich jako circular-json , czyli cykliczny parser JSON, lub cycle.js , stworzony dla użytkowników IE8.

Ciągły JSON serializuje i deserializuje inne prawidłowe obiekty JSON zawierające cykliczne odwołania do i z wyspecjalizowanego formatu JSON.

Wnioski

JSON nie obsługuje odniesienia do obiektów, więc jeśli spróbujesz połączyć obiekt JSON, który odwołuje się do siebie, wystąpi literówka.

Struktura kołowa to obiekt, który odwołuje się do siebie.Aby móc łączyć takie obiekty, programiści mogą użyć parametru replace w metodzie stringify (), upewniając się, że przekazana funkcja odfiltrowuje dane powtarzające się lub cykliczne.

Usin Biblioteki g, takie jak circular-json, również mogą być rozwiązaniem tego błędu.