javascript - 如何避免 JSON.stringify 在特殊情况下返回未定义,从而创建 JSON.parse 失败的字符串?

标签 javascript json firefox windows-7 undefined

我使用 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/

相关文章:

javascript - Localhost 和打开 html 文件的区别

python - 使用JQ从CloudFormation.template.json中删除 block

java - Gson如何排除JsonSerializer中的某些字段

html - Webfonts 在 Firefox Developer Edition 54.0a2 中不起作用

javascript - 使用 JS 在 DOM 中添加元素

javascript - Css变量插值Styled Components

javascript - 如何检测浏览器是否支持iframe?

json - Scala Spark - 从简单数据帧创建嵌套 json 输出

jquery - Firefox css 显示问题

javascript - JSON.parse() 是否需要双引号?