Heim > Web-Frontend > js-Tutorial > Warum kann JSON.stringify Fehlerobjekte nicht in Strings umwandeln und wie kann ich das beheben?

Warum kann JSON.stringify Fehlerobjekte nicht in Strings umwandeln und wie kann ich das beheben?

Patricia Arquette
Freigeben: 2024-11-29 21:53:10
Original
509 Leute haben es durchsucht

Why Does JSON.stringify Fail to Stringify Error Objects and How Can I Fix It?

JSON.stringify: Fehlerobjekte können nicht in Strings unterteilt werden

Wenn Sie mit Web-Sockets arbeiten und auf Fehler stoßen, ist es oft notwendig, Fehlermeldungen weiterzugeben. Die Verwendung von JSON.stringify scheint zunächst eine unkomplizierte Lösung zu sein, aber native Fehlerobjekte werden dadurch nicht richtig stringifiziert.

Problem:

Der Versuch, ein Fehlerobjekt zu stringifizieren, führt zu Ergebnissen in einem leeren Objekt ({}), was darauf hinweist, dass die Fehlerinformationen nicht vorhanden waren erfasst.

Ursache:

Das Problem liegt in den Prototypeigenschaften des Fehlerobjekts. Bei Schlüsseleigenschaften wie „stack“ und „message“ ist das Aufzählungsflag auf „false“ gesetzt. Folglich überspringt JSON.stringify diese Eigenschaften während des Serialisierungsprozesses und hinterlässt ein leeres Objekt.

Lösung:

Um dieses Verhalten zu umgehen, ist eine manuelle Extraktion erforderlich Die Eigenschaften des Error-Objekts mithilfe von Object.getOwnPropertyNames. Diese Eigenschaften können dann als Ersetzungsfunktion an JSON.stringify übergeben werden, um eine JSON-Zeichenfolge zu erstellen, die die Fehlerinformationen enthält:

JSON.stringify(err, Object.getOwnPropertyNames(err))
Nach dem Login kopieren

Alternativ können Sie Ihre eigenen benutzerdefinierten Fehlerobjekte mit aufzählbaren Eigenschaften erstellen. Dadurch können sie durch JSON.stringify korrekt stringifiziert werden.

Das obige ist der detaillierte Inhalt vonWarum kann JSON.stringify Fehlerobjekte nicht in Strings umwandeln und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage