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 toJSON()
Methode von Date
-Instanzen gibt einen String zurück, der dieses Datum im gleichen ISO-Format wie toISOString()
darstellt.
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
toJSON()
Parameter
Keine.
Rückgabewert
Ein String, der das gegebene Datum im datetime 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 toJSON()
-Methode wird automatisch von JSON.stringify()
aufgerufen, wenn ein Date
-Objekt in einen String umgewandelt wird. Diese Methode ist im Allgemeinen dazu gedacht, Date
-Objekte während der JSON-Serialisierung nützlich zu serialisieren, die dann unter Verwendung des Date()
-Konstruktors als Reviver von JSON.parse()
deserialisiert werden können.
Die Methode versucht zuerst, ihren this
-Wert in einen primitiven Wert zu konvertieren, indem sie der Reihe nach ihre [Symbol.toPrimitive]()
(mit "number"
als Hinweis), valueOf()
und toString()
Methoden aufruft. Wenn das Ergebnis eine nicht-finite Zahl ist, wird null
zurückgegeben. (Dies entspricht im Allgemeinen einem ungültigen Datum, dessen valueOf()
NaN
zurückgibt.) Andernfalls, wenn der konvertierte primitive Wert 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 numerische Primitive-Darstellung des Objekts ist NaN
, oder das Objekt hat auch eine toISOString()
-Methode.
Beispiele
Verwendung von toJSON()
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-Rundreise
Beim Parsen von JSON, das Datumsstrings enthält, können Sie den Date()
-Konstruktor verwenden, um sie in die ursprünglichen Datum-Objekte zu verwandeln.
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 erwartete Payload-Form sein, 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 |