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
toJSON()
Parameter
Keine.
Rückgabewert
Ein einfaches, JSON-serialisierbares Objekt mit den folgenden Eigenschaften:
endpointexpirationTimekeys: die vongetKey()zurückgegebenen Wertep256dhundauth, als base64url-Strings ohne Padding codiert
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.
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.
console.log(JSON.stringify(subscription));
Dadurch würde ein JSON-String wie der folgende protokolliert (zur besseren Lesbarkeit formatiert):
{
"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> |