Temporal.Duration.prototype.toJSON()

可用性有限

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

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

toJSON() 方法用於 Temporal.Duration 例項,它返回一個字串,表示此持續時間的格式與呼叫 toString() 時使用的 ISO 8601 格式相同。此方法旨在由 JSON.stringify() 隱式呼叫。

語法

js
toJSON()

引數

無。

返回值

一個字串,表示給定持續時間的 ISO 8601 格式,具有表示持續時間所需的儘可能高的亞秒精度。

描述

Temporal.Duration 物件被字串化時,JSON.stringify() 會自動呼叫 toJSON() 方法。此方法通常旨在預設情況下在 JSON 序列化過程中有用地序列化 Temporal.Duration 物件,然後可以使用 JSON.parse() 的復原函式 Temporal.Duration.from() 進行反序列化。

示例

使用 toJSON()

js
const duration = Temporal.Duration.from({ hours: 1, minutes: 30, seconds: 15 });
const durationStr = duration.toJSON(); // 'PT1H30M15S'
const d2 = Temporal.Duration.from(durationStr);

JSON 序列化和解析

本示例展示瞭如何無需額外努力即可將 Temporal.Duration 序列化為 JSON,以及如何將其解析回來。

js
const duration = Temporal.Duration.from({ hours: 1, minutes: 30, seconds: 15 });
const jsonStr = JSON.stringify({ data: duration }); // '{"data":"PT1H30M15S"}'
const obj = JSON.parse(jsonStr, (key, value) => {
  if (key === "data") {
    return Temporal.Duration.from(value);
  }
  return value;
});

規範

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

瀏覽器相容性

另見