Temporal.ZonedDateTime.prototype.toJSON()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die toJSON() Methode von Instanzen des Temporal.ZonedDateTime gibt eine Zeichenkette zurück, die dieses Datum-Uhrzeit-Wert im gleichen RFC 9557-Format darstellt, wie es der Aufruf von toString() tun würde. Sie soll implizit durch JSON.stringify() aufgerufen werden.

Syntax

js
toJSON()

Parameter

Keine.

Rückgabewert

Eine Zeichenkette, die das gegebene Datum-Uhrzeit-Wert im RFC 9557-Format darstellt, wobei die Kalenderannotation enthalten ist, wenn sie nicht "iso8601" ist, und die Offset- und Zeitzonenannotation immer enthalten sind.

Beschreibung

Die toJSON() Methode wird automatisch durch JSON.stringify() aufgerufen, wenn ein Temporal.ZonedDateTime Objekt als Zeichenkette umgewandelt wird. Diese Methode ist im Allgemeinen dafür gedacht, standardmäßig Temporal.ZonedDateTime Objekte auf nützliche Weise während der JSON Serialisierung zu serialisieren, die dann mit der Temporal.ZonedDateTime.from() Funktion als Wiederbeleber von JSON.parse() deserialisiert werden können.

Beispiele

Verwendung von toJSON()

js
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 werden kann und wie es zurückgeparst werden kann.

js
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

Specification
Temporal proposal
# sec-temporal.zoneddatetime.prototype.tojson

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch