Temporal.PlainMonthDay.prototype.toJSON()

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

toJSON() 方法是 Temporal.PlainMonthDay 实例的方法,它返回一个字符串,该字符串以与调用 toString() 相同的 RFC 9557 格式表示此月份-日期。它的设计目的是由 JSON.stringify() 隐式调用。

语法

js
toJSON()

参数

无。

返回值

一个字符串,表示给定月份-日期,采用 RFC 9557 格式,如果年份和日历注解不是 "iso8601",则会包含它们。

描述

Temporal.PlainMonthDay 对象被序列化为字符串时,toJSON() 方法会被 JSON.stringify() 自动调用。此方法通常旨在默认情况下有效地序列化 Temporal.PlainMonthDay 对象,以便在 JSON 序列化过程中使用,然后可以使用 Temporal.PlainMonthDay.from() 函数作为 JSON.parse() 的 reviver 来反序列化。

示例

使用 toJSON()

js
const md = Temporal.PlainMonthDay.from({ month: 8, day: 1 });
const mdStr = md.toJSON(); // '08-01'
const md2 = Temporal.PlainMonthDay.from(mdStr);

JSON 序列化和解析

此示例演示了如何在不进行额外工作的情况下将 Temporal.PlainMonthDay 序列化为 JSON,以及如何将其解析回来。

js
const md = Temporal.PlainMonthDay.from({ month: 8, day: 1 });
const jsonStr = JSON.stringify({ birthday: md }); // '{"birthday":"08-01"}'
const obj = JSON.parse(jsonStr, (key, value) => {
  if (key === "birthday") {
    return Temporal.PlainMonthDay.from(value);
  }
  return value;
});

规范

规范
Temporal
# sec-temporal.plainmonthday.prototype.tojson

浏览器兼容性

另见