如果輸入包含任何單獨的代理字元,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: 支援