MediaDeviceInfo: Methode toJSON()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Oktober 2018 browserübergreifend verfügbar.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die Methode toJSON() der Schnittstelle MediaDeviceInfo gibt ein JSON-serialisierbares einfaches Objekt zurück, das das MediaDeviceInfo-Objekt repräsentiert.
Die Methode wird bei der JSON-Serialisierung automatisch von JSON.stringify() aufgerufen, wenn ein MediaDeviceInfo-Objekt verarbeitet wird.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Ein JSON-serialisierbares einfaches Objekt mit den folgenden Eigenschaften:
Der Wert jeder Eigenschaft wird unverändert übernommen.
Beispiele
>toJSON() direkt aufrufen
Dieses Beispiel ruft ein MediaDeviceInfo-Objekt ab. Ein direkter Aufruf von toJSON() gibt ein einfaches Objekt zurück. Dessen Eigenschaften haben dieselben Werte wie die entsprechenden Eigenschaften des ursprünglichen Objekts.
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
console.log("enumerateDevices() not supported.");
} else {
// List cameras and microphones.
navigator.mediaDevices
.enumerateDevices()
.then((devices) => {
devices.forEach((device) => {
const json = device.toJSON();
console.log(json); // A plain object
console.log(typeof json); // "object"
console.log(json.deviceId); // Same value as device.deviceId
});
})
.catch((err) => {
console.log(`${err.name}: ${err.message}`);
});
}
In einen JSON-String serialisieren
Innerhalb des forEach()-Callbacks aus dem vorherigen Beispiel kann dasselbe Objekt mit JSON.stringify() serialisiert werden. Dabei wird die Methode toJSON() automatisch aufgerufen.
console.log(JSON.stringify(device));
Dies würde einen JSON-String wie den folgenden protokollieren (zur besseren Lesbarkeit formatiert):
{
"deviceId": "HJtTemQTM64Bivxv3ZEyKjCi1VR8042lPNpmXKObKJE=",
"kind": "videoinput",
"label": "",
"groupId": "Okm2l1YZTrwy8awTxE8QSLNFoVMdIXx++wLh68tbmv0="
}
Jedes weitere Gerät wird als separater JSON-String protokolliert.
Spezifikationen
| Spezifikation |
|---|
| Media Capture and Streams> # dom-mediadeviceinfo-tojson> |