Date.prototype.toJSON()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die Methode toJSON() von Date-Instanzen gibt einen String zurück, der dieses Datum im gleichen ISO-Format darstellt wie toISOString().

Probieren Sie es aus

const event = new Date("August 19, 1975 23:15:30 UTC");

const jsonDate = event.toJSON();

console.log(jsonDate);
// Expected output: "1975-08-19T23:15:30.000Z"

console.log(new Date(jsonDate).toUTCString());
// Expected output: "Tue, 19 Aug 1975 23:15:30 GMT"

Syntax

js
toJSON()

Parameter

Keine.

Rückgabewert

Ein String, der das angegebene Datum im Datum-Zeit-String-Format gemäß Weltzeit darstellt, oder null, wenn das Datum ungültig ist. Für gültige Daten entspricht der Rückgabewert dem von toISOString().

Beschreibung

Die Methode toJSON() wird automatisch von JSON.stringify() aufgerufen, wenn ein Date-Objekt als String dargestellt wird. Diese Methode dient im Allgemeinen dazu, Date-Objekte während der JSON-Serialisierung standardmäßig nützlich zu serialisieren, die dann mit dem Konstruktor Date() als Reviver von JSON.parse() deserialisiert werden können.

Die Methode versucht zunächst, ihren this-Wert in ein primitives umzuwandeln, indem sie der Reihe nach seine [Symbol.toPrimitive]()-Methode (mit dem Hinweis "number"), valueOf() und toString() Methoden aufruft. Wenn das Ergebnis eine nicht-endliche Zahl ist, wird null zurückgegeben. (Dies entspricht im Allgemeinen einem ungültigen Datum, dessen valueOf() NaN zurückgibt.) Andernfalls, wenn das konvertierte Primitive keine Zahl oder eine endliche Zahl ist, wird der Rückgabewert von this.toISOString() zurückgegeben.

Beachten Sie, dass die Methode nicht überprüft, ob der this-Wert ein gültiges Date-Objekt ist. Das Aufrufen von Date.prototype.toJSON() auf Nicht-Date-Objekten schlägt jedoch fehl, es sei denn, die primitive Zahlenrepräsentation des Objekts ist NaN, oder das Objekt verfügt ebenfalls über eine toISOString()-Methode.

Beispiele

Verwendung von toJSON()

js
const jsonDate = new Date(0).toJSON(); // '1970-01-01T00:00:00.000Z'
const backToDate = new Date(jsonDate);

console.log(jsonDate); // 1970-01-01T00:00:00.000Z

Serialisierungs-Roundtrip

Beim Parsen von JSON, das Datumsstrings enthält, können Sie den Date()-Konstruktor verwenden, um sie in die ursprünglichen Datumsobjekte wiederzubeleben.

js
const fileData = {
  author: "Maria",
  title: "Date.prototype.toJSON()",
  createdAt: new Date(2019, 3, 15),
  updatedAt: new Date(2020, 6, 26),
};
const response = JSON.stringify(fileData);

// Imagine transmission through network

const data = JSON.parse(response, (key, value) => {
  if (key === "createdAt" || key === "updatedAt") {
    return new Date(value);
  }
  return value;
});

console.log(data);

Hinweis: Der Reviver von JSON.parse() muss spezifisch für die Form der Nutzlast sein, die Sie erwarten, da die Serialisierung irreversibel ist: es ist nicht möglich, zwischen einem String, der ein Datum darstellt, und einem normalen String zu unterscheiden.

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype.tojson

Browser-Kompatibilität

Siehe auch