Date : méthode toJSON()
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode toJSON() des instances de Date retourne une chaîne de caractères représentant cette date au même format ISO que toISOString().
Exemple interactif
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"
Syntaxe
toJSON()
Paramètres
Aucun.
Valeur de retour
Une chaîne de caractères représentant la date donnée au format chaîne de date-heure selon le temps universel, ou null si la date est invalide. Pour les dates valides, la valeur de retour est identique à celle de toISOString().
Description
La méthode toJSON() est automatiquement appelée par JSON.stringify() lorsqu'un objet Date est converti en chaîne de caractères. Cette méthode est généralement destinée, par défaut, à sérialiser utilement les objets Date lors de la sérialisation JSON, qui peuvent ensuite être désérialisés à l'aide du constructeur Date() comme reviver de JSON.parse().
La méthode tente d'abord de convertir sa valeur this en une valeur primitive en appelant successivement [Symbol.toPrimitive]() (avec l'indication "number"), valueOf(), puis toString(). Si le résultat est un nombre non fini, null est retourné. (Cela correspond généralement à une date invalide, dont valueOf() retourne NaN.) Sinon, si la valeur primitive convertie n'est pas un nombre ou est un nombre fini, la valeur de retour de this.toISOString() est retournée.
Notez que la méthode ne vérifie pas si la valeur this est un objet Date valide. Cependant, appeler Date.prototype.toJSON() sur des objets qui ne sont pas des Date échoue sauf si la représentation primitive numérique de l'objet est NaN, ou si l'objet possède aussi une méthode toISOString().
Exemple
>Utiliser la méthode toJSON()
const jsonDate = new Date().toJSON(); // '1970-01-01T00:00:00.000Z'
const retourVersDate = new Date(jsonDate);
console.log(jsonDate); // 1970-01-01T00:00:00.000Z
Sérialisation et désérialisation
Lors de l'analyse d'un JSON contenant des chaînes de caractères représentant des dates, vous pouvez utiliser le constructeur Date() pour les restaurer en objets date d'origine.
const donneeFichier = {
author: "Maria",
title: "Date.prototype.toJSON()",
createdAt: new Date(2019, 3, 15),
updatedAt: new Date(2020, 6, 26),
};
const reponse = JSON.stringify(donneeFichier);
// Imaginons une transmission par le réseau
const donnee = JSON.parse(reponse, (cle, valeur) => {
if (cle === "createdAt" || cle === "updatedAt") {
return new Date(valeur);
}
return valeur;
});
console.log(donnee);
Note :
Le reviver de JSON.parse() doit être adapté à la structure attendue du contenu, car la sérialisation est irréversible : il n'est pas possible de distinguer une chaîne représentant une date d'une chaîne normale.
Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-date.prototype.tojson> |
Compatibilité des navigateurs
Voir aussi
- La méthode
Date.prototype.toLocaleDateString() - La méthode
Date.prototype.toTimeString() - La méthode
Date.prototype.toUTCString()