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

View in English Always switch to English

PushSubscription: Methode toJSON()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2023 browserübergreifend verfügbar.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Methode toJSON() der Schnittstelle PushSubscription gibt ein einfaches, JSON-serialisierbares Objekt zurück, das das PushSubscription-Objekt repräsentiert.

Die Methode wird automatisch von JSON.stringify() aufgerufen, wenn bei der JSON-Serialisierung ein PushSubscription-Objekt verarbeitet wird.

Syntax

js
toJSON()

Parameter

Keine.

Rückgabewert

Ein einfaches, JSON-serialisierbares Objekt mit den folgenden Eigenschaften:

Sofern nicht anders angegeben, wird der Wert jeder Eigenschaft unverändert übernommen.

Beispiele

toJSON() direkt aufrufen

Dieses Beispiel ruft ein PushSubscription-Objekt ab. Der direkte Aufruf von toJSON() gibt ein einfaches Objekt zurück. Dessen Eigenschaften haben dieselben Werte wie die entsprechenden Eigenschaften des ursprünglichen Objekts.

js
navigator.serviceWorker.ready.then((reg) => {
  reg.pushManager.getSubscription().then((subscription) => {
    const json = subscription.toJSON();
    console.log(json); // A plain object
    console.log(typeof json); // "object"
    console.log(json.endpoint); // Same value as subscription.endpoint
  });
});

Als JSON-String serialisieren

Innerhalb des getSubscription()-Callbacks aus dem vorherigen Beispiel kann dasselbe Objekt mit JSON.stringify() serialisiert werden. Dabei wird die Methode toJSON() automatisch aufgerufen.

js
console.log(JSON.stringify(subscription));

Dadurch würde ein JSON-String wie der folgende protokolliert (zur besseren Lesbarkeit formatiert):

json
{
  "endpoint": "https://push.example.com/subscriptions/12345",
  "expirationTime": null,
  "keys": {
    "p256dh": "...",
    "auth": "..."
  }
}

Die base64url-codierten Schlüsselwerte sind zur besseren Lesbarkeit als "..." abgekürzt.

Spezifikationen

Spezifikation
Push API
# dom-pushsubscription-tojson

Browser-Kompatibilität