我使用 Windows 7 64 位和 Firefox 32。
所以我读到 JSON.parse 无法处理类似 JSON.parse("{ 'a': undefined }";
但是当在以下上下文中使用 JSON.stringify 时,我得到了未定义的结果:
console.log("'abc': " + JSON.stringify(this.nothing));
结果
"'abc': undefined"
我正在自己的函数中创建对象字符串,但为了在这些函数中简单起见,我对某些变量使用 JSON.stringify。
我认为这会让我处于安全的一面。
最佳答案
您错误地使用了 JSON 工具:
console.log(JSON.stringify({ abc: this.nothing }));
这将为您提供 JSON 字符串 "{}"
,这是正确的,因为 ({}).abc
是 未定义
。 JSON 规范不包含未定义的规定;唯一允许的标量值是字符串、数字、 bool 值和 null
。因此,值为 undefined
的 JavaScript 属性被“序列化”为根本不在对象中。
不要零碎地使用JSON.stringify()
。创建 JavaScript 对象结构,然后将整个内容字符串化。
关于javascript - 如何避免 JSON.stringify 在特殊情况下返回未定义,从而创建 JSON.parse 失败的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246871/