| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/JSON/isRawJSON | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Seit Mrz 2025 funktioniert diese Funktion auf aktuellen Gerten und in aktuellen Browserversionen. Auf lteren Gerten oder in lteren Browsern funktioniert sie mglicherweise nicht.
Die JSON.isRawJSON() statische Methode prft, ob ein Wert ein von JSON.rawJSON() zurckgegebenes Objekt ist.
JSON.isRawJSON(value)
valueDer Wert, der getestet werden soll.
true, wenn value durch JSON.rawJSON() erstellt wurde; andernfalls false.
Roh-JSON-Objekte werden bei der Serialisierung nach JSON so behandelt, als ob sie bereits ein Stck JSON sind. Darber hinaus ist das rohe JSON aufgrund der Funktionsweise von JSON.rawJSON() garantiert syntaktisch gltiges JSON. Weitere Informationen zur Struktur und zum Verhalten von Roh-JSON-Objekten finden Sie unter JSON.rawJSON(). Diese Methode existiert, um anderen Serialisierungsbibliotheken zu ermglichen, ein hnliches Verhalten wie JSON.stringify() fr Roh-JSON-Objekte zu implementieren.
Das folgende Beispiel zeigt, wie JSON.isRawJSON() verwendet wird, um zu testen, ob ein Objekt von JSON.rawJSON() zurckgegeben wurde. Es implementiert einen benutzerdefinierten Serializer, der Daten in ein YAML-hnliches Format serialisiert.
function mySerializer(value, indent = "") {
if (typeof value !== "object" || value === null) {
return JSON.stringify(value);
}
if (JSON.isRawJSON(value)) {
return value.rawJSON;
}
const subIndent = `${indent} `;
if (Array.isArray(value)) {
return `- ${value.map((v) => mySerializer(v, subIndent)).join(`\n${indent}- `)}`;
}
return Object.entries(value)
.map(([key, value]) => {
const subValue = mySerializer(value, subIndent);
if (subValue.includes("\n")) {
return `${key}:\n${subIndent}${subValue}`;
}
return `${key}: ${subValue}`;
})
.join(`\n${indent}`);
}
console.log(
mySerializer({
name: "Josh",
userId: JSON.rawJSON("12345678901234567890"),
friends: [
{ name: "Alice", userId: JSON.rawJSON("9876543210987654321") },
{ name: "Bob", userId: JSON.rawJSON("56789012345678901234") },
],
}),
);
// name: "Josh"
// userId: 12345678901234567890
// friends:
// - name: "Alice"
// userId: 9876543210987654321
// - name: "Bob"
// userId: 56789012345678901234
Wenn in dem obigen Beispiel die userId-Werte nicht durch JSON.rawJSON() erstellt, sondern direkt als Zahlen bergeben wrden, dann kommt es aufgrund von JS-Fliekomma-Przisionsbeschrnkungen zu einem Przisionsverlust.
console.log(
mySerializer({
name: "Josh",
userId: 12345678901234567890,
friends: [
{ name: "Alice", userId: 9876543210987654321 },
{ name: "Bob", userId: 56789012345678901234 },
],
}),
);
// name: "Josh"
// userId: 12345678901234567000
// friends:
// - name: "Alice"
// userId: 9876543210987655000
// - name: "Bob"
// userId: 56789012345678900000
| Spezifikation |
|---|
| JSON.parse source text access # sec-json.israwjson |
JSONDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |