Temporal.ZonedDateTime.prototype.toJSON()
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Die Methode toJSON() von Temporal.ZonedDateTime-Instanzen gibt einen String zurück, der dieses Datum und diese Uhrzeit im selben RFC-9557-Format darstellt wie ein Aufruf von toString(). Sie ist dafür vorgesehen, implizit von JSON.stringify() aufgerufen zu werden.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Ein String, der das angegebene Datum und die angegebene Uhrzeit im RFC-9557-Format darstellt. Die Kalenderannotation ist enthalten, wenn der Kalender nicht "iso8601" ist; der Offset und die Zeitzonenannotation sind immer enthalten.
Beschreibung
Die Methode toJSON() wird automatisch von JSON.stringify() aufgerufen, wenn ein Temporal.ZonedDateTime-Objekt in einen String umgewandelt wird. Sie dient dazu, Temporal.ZonedDateTime-Objekte bei der JSON-Serialisierung standardmäßig in einer brauchbaren Form zu serialisieren. Diese können anschließend mithilfe der Funktion Temporal.ZonedDateTime.from() im Reviver von JSON.parse() deserialisiert werden.
Beispiele
>toJSON() verwenden
const zdt = Temporal.ZonedDateTime.from({
year: 2021,
month: 8,
day: 1,
timeZone: "America/New_York",
});
const zdtStr = zdt.toJSON(); // '2021-08-01T00:00:00-04:00[America/New_York]'
const zdt2 = Temporal.ZonedDateTime.from(zdtStr);
JSON-Serialisierung und -Parsing
Dieses Beispiel zeigt, wie Temporal.ZonedDateTime ohne zusätzlichen Aufwand als JSON serialisiert und anschließend wieder eingelesen werden kann.
const zdt = Temporal.ZonedDateTime.from({
year: 2021,
month: 8,
day: 1,
timeZone: "America/New_York",
});
const jsonStr = JSON.stringify({ meeting: zdt }); // '{"meeting":"2021-08-01T00:00:00-04:00[America/New_York]"}'
const obj = JSON.parse(jsonStr, (key, value) => {
if (key === "meeting") {
return Temporal.ZonedDateTime.from(value);
}
return value;
});
Spezifikationen
| Spezifikation |
|---|
| Temporal> # sec-temporal.zoneddatetime.prototype.tojson> |