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 eine Zeichenkette zurück, die 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

Eine Zeichenkette, die das gegebene Datum im Datum-Zeit-Format gemäß universeller Zeit darstellt, oder null, wenn das Datum ungültig ist. Bei gültigen Daten ist der Rückgabewert derselbe wie der von toISOString().

Beschreibung

Die toJSON()-Methode wird automatisch von JSON.stringify() aufgerufen, wenn ein Date-Objekt serialisiert wird. Diese Methode ist im Allgemeinen dazu gedacht, Date-Objekte während der JSON-Serialisierung auf nützliche Weise zu serialisieren. Anschließend können sie mithilfe des Date()-Konstruktors als Reviver von JSON.parse() deserialisiert werden.

Die Methode versucht zunächst, ihren this-Wert in einen primitiven Wert umzuwandeln, indem sie der Reihe nach die Methoden [Symbol.toPrimitive]() (mit "number" als Hinweis), valueOf() und toString() aufruft. Wenn das Ergebnis eine nicht-endliche Zahl ist, wird null zurückgegeben. (Dies entspricht im Allgemeinen einem ungültigen Datum, bei dem valueOf() NaN zurückgibt.) Andernfalls, wenn der umgewandelte primitive Wert keine Zahl ist 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

Serialisierung mit Rückkonvertierung

Beim Parsen von JSON, das Datumszeichenketten enthält, können Sie den Date()-Konstruktor verwenden, um diese in die ursprünglichen Date-Objekte zu konvertieren.

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 auf die erwartete Struktur der Nutzlast abgestimmt sein, da die Serialisierung unumkehrbar ist: Es ist nicht möglich, zwischen einem String, der ein Datum darstellt, und einem normalen String zu unterscheiden.

Spezifikationen

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

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
toJSON

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch