[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/JSON/isRawJSON [Back]  [Original]

JSON.isRawJSON() - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

JSON.isRawJSON()

Baseline 2025
Neu verfgbar

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.

In diesem Artikel

Syntax

js
JSON.isRawJSON(value)

Parameter

value

Der Wert, der getestet werden soll.

Rckgabewert

true, wenn value durch JSON.rawJSON() erstellt wurde; andernfalls false.

Beschreibung

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.

Beispiele

Verwendung von JSON.isRawJSON()

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.

js
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.

js
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

Spezifikationen

Spezifikation
JSON.parse source text access
# sec-json.israwjson

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page