格式良好的 JSON.stringify

发布于 · 标签:ECMAScript ES2019

JSON.stringify 之前被指定为,如果输入包含任何单独的代理项,则返回格式错误的 Unicode 字符串

JSON.stringify('\uD800');
// → '"�"'

“格式良好的 JSON.stringify” 提案 更改了 JSON.stringify,使其为单独的代理项输出转义序列,使其输出成为有效的 Unicode(并且可以在 UTF-8 中表示)

JSON.stringify('\uD800');
// → '"\\ud800"'

请注意,JSON.parse(stringified) 仍然会产生与以前相同的结果。

此功能是一个很小的修复程序,在 JavaScript 中早就应该实现了。对于 JavaScript 开发人员来说,它减少了一件需要担心的事情。结合 JSON ⊂ ECMAScript,它能够将 JSON 字符串化的数据安全地嵌入到 JavaScript 程序中作为字面量,并将生成的代码以任何与 Unicode 兼容的编码(例如 UTF-8)写入磁盘。这对 元编程用例 非常有用。

功能支持 #