{Set,Map}.prototype.toJSON ?
提案概览
- 阶段: 未分阶段
- 状态: 不活跃
- ECMAScript 版本: —
- 同步时间: 2026年8月26日
- English original · 官方仓库
提案速览
该提案针对 Map 和 Set 实例在 JSON.stringify 下返回 '{}' 这一无帮助结果的问题。它建议在 Set.prototype 和 Map.prototype 上添加默认的 toJSON 方法,使 JSON 序列化分别返回键值对数组或值数组。用户代码仍可在具体实例上覆盖这些方法。
Note
以下 README 来自上游仓库,其中的阶段或状态标注可能滞后;当前信息以提案概览为准。
Map-Set.prototype.toJSON
一个 ECMAScript 提案。目前处于第 0 阶段。
该提案在 2016 年 3 月的委员会会议上提出,并被彻底否决。详情
问题
以下是当前的情况:
这个结果没有用处。Map 也是如此。
提案
本提案旨在通过 Set.prototype 和 Map.prototype 上的默认 toJSON 实现,为 JSON 序列化这一常见操作提供一个合理的默认行为。当然,用户代码总是可以在特定实例上覆盖该值。
Map.prototype.toJSON
本提案的核心内容体现在以下代码片段中(规范见 markdown 或 HTML):
Set.prototype.toJSON
本提案的核心内容体现在以下代码片段中(规范见 markdown 或 HTML):
讨论
如果使用原生 Map 和 Set 或 polyfill 的代码依赖于当前的 JSON.stringify 行为,可能会存在 web 兼容性问题。
许可证
本作品致力于公有领域。采用 CC0 许可。