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)写入磁盘。这对 元编程用例 非常有用。
功能支持 #
- Chrome: 从版本 72 开始支持
- Firefox: 从版本 64 开始支持
- Safari: 从版本 12.1 开始支持
- Node.js: 从版本 12 开始支持
- Babel: 支持