Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Seit March 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die JSON.rawJSON() statische Methode erstellt ein "rohes JSON"-Objekt, das ein Stück JSON-Text enthält. Wenn es zu JSON serialisiert wird, wird das rohe JSON-Objekt so behandelt, als wäre es bereits ein JSON-Stück. Dieser Text muss gültiges JSON sein.
Der JSON-Text. Muss ein gültiges JSON darstellend einen primitiven Wert sein.
Ein Objekt, das verwendet werden kann, um JSON-Text mit dem exakt gleichen Inhalt wie der bereitgestellte string zu erstellen, ohne Anführungszeichen um den String selbst. Dieses Objekt hat null Prototype und ist eingefroren (daher wird es niemals versehentlich als reguläres Objekt durch eine Art primitivem Konvertierung serialisiert) und hat die folgende Eigenschaft:
rawJSONDer ursprüngliche JSON-string, der bereitgestellt wurde.
Darüber hinaus hat es ein privates Feld, das sich selbst als rohes JSON-Objekt kennzeichnet. Dies ermöglicht es JSON.stringify() und JSON.isRawJSON(), es zu identifizieren.
Wird ausgelöst, wenn der string kein gültiges JSON ist oder wenn er ein Objekt oder Array darstellt.
Ein rohes JSON-Objekt kann als eine unveränderliche, atomare Datenstruktur angesehen werden wie jede Art von Primitive. Es ist kein reguläres Objekt und enthält keine anderen Daten als den rohen JSON-Text. Es wird verwendet, um Daten zu „voraus-zu-serialisieren“ in Formate, die JSON.stringify selbst aus verschiedenen Gründen nicht erzeugen kann. Der typischste Anwendungsfall ist das Problem des Verlusts der Genauigkeit bei Gleitkommazahlen. Zum Beispiel:
Der Wert ist nicht mehr genau gleichwertig mit der ursprünglichen Zahl! Dies liegt daran, dass JavaScript für alle Zahlen die Gleitkommadarstellung verwendet, sodass es nicht alle Ganzzahlen exakt darstellen kann. Das Zahlenliteral 12345678901234567890 selbst wird bereits auf die nächstliegende darstellbare Zahl gerundet, wenn es von JavaScript geparst wird.
Ohne JSON.rawJSON gibt es keine Möglichkeit, JSON.stringify anzuweisen, das Zahlenliteral 12345678901234567890 zu erzeugen, da es schlichtweg keinen entsprechenden JavaScript-Zahlenwert gibt. Mit rohem JSON können Sie JSON.stringify() direkt mitteilen, wie ein bestimmter Wert als String serialisiert werden soll:
Ein vollständigeres Beispiel dafür finden Sie unter Verlustfreie Zahlenspeicherung.
Beachten Sie, dass obwohl wir einen String zu JSON.rawJSON() übergeben haben, wird er dennoch im finalen JSON zu einer Zahl. Dies liegt daran, dass der String den wörtlichen JSON-Text darstellt. Wenn Sie einen String serialisieren möchten, sollten Sie JSON.rawJSON() mit einem in Anführungszeichen eingeschlossenen Stringwert verwenden:
JSON.rawJSON erlaubt Ihnen, beliebigen JSON-Text einzufügen, erlaubt es jedoch nicht, ungültiges JSON zu erstellen. Alles, was durch die JSON-Syntax nicht erlaubt ist, ist auch durch JSON.rawJSON() nicht erlaubt:
Darüber hinaus können Sie JSON.rawJSON() nicht verwenden, um JSON-Objekte oder Arrays zu erstellen.
Allerdings können Sie JSON.rawJSON() nicht verwenden, um JSON-Objekte oder Arrays zu erstellen:
Abgesehen von Zahlen gibt es nur einen weiteren Typ, der keine eins-zu-eins Entsprechung zwischen JavaScript-Werten und JSON-Text hat: Strings. Wenn Strings zu JSON serialisiert werden, werden alle Codepunkte, außer denen, die in JSON-Stringliteralen nicht legal sind (wie Zeilenumbrüche), wörtlich ausgegeben:
Dies ist möglicherweise nicht wünschenswert, da der Empfänger dieses Strings Unicode möglicherweise unterschiedlich behandelt. Um die Interoperabilität zu verbessern, können Sie den zu serialisierenden String explizit mit Escape-Sequenzen angeben:
Beachten Sie, dass die doppelten Backslashes im rawJSON tatsächlich ein einzelnes Backslash-Zeichen darstellen.
| JSON.parse source text access # sec-json.rawjson |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.