Temporal.PlainDateTime.prototype.toJSON()

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

toJSON() 方法是 Temporal.PlainDateTime 例項的一個方法,它返回一個字串,表示此日期-時間與呼叫 toString() 時相同的 RFC 9557 格式。它旨在被 JSON.stringify() 隱式呼叫。

語法

js
toJSON()

引數

無。

返回值

一個字串,表示給定的日期-時間,採用 RFC 9557 格式,如果日曆註解不是 "iso8601",則會包含日曆註解。

描述

Temporal.PlainDateTime 物件被字串化時,toJSON() 方法會被 JSON.stringify() 自動呼叫。該方法通常旨在預設情況下有效地序列化 Temporal.PlainDateTime 物件,這可以透過 Temporal.PlainDateTime.from() 函式作為 JSON.parse() 的 reviver 來反序列化。

示例

使用 toJSON()

js
const dt = Temporal.PlainDateTime.from({ year: 2021, month: 8, day: 1 });
const dtStr = dt.toJSON(); // '2021-08-01T00:00:00'
const dt2 = Temporal.PlainDateTime.from(dtStr);

JSON 序列化和解析

此示例顯示瞭如何無需額外工作即可將 Temporal.PlainDateTime 序列化為 JSON,以及如何將其解析回來。

js
const dt = Temporal.PlainDateTime.from({ year: 2021, month: 8, day: 1 });
const jsonStr = JSON.stringify({ nextBilling: dt }); // '{"nextBilling":"2021-08-01T00:00:00"}'
const obj = JSON.parse(jsonStr, (key, value) => {
  if (key === "nextBilling") {
    return Temporal.PlainDateTime.from(value);
  }
  return value;
});

規範

規範
Temporal
# sec-temporal.plaindatetime.prototype.tojson

瀏覽器相容性

另見