首页 > web前端 > js教程 > 为什么 JSON.stringify 无法字符串化错误对象以及如何修复?

为什么 JSON.stringify 无法字符串化错误对象以及如何修复?

Patricia Arquette
发布: 2024-11-29 21:53:10
原创
510 人浏览过

Why Does JSON.stringify Fail to Stringify Error Objects and How Can I Fix It?

JSON.stringify:无法字符串化错误对象

使用 Web 套接字并遇到错误时,通常需要传递错误消息。最初,使用 JSON.stringify 似乎是一个简单的解决方案,但它无法正确字符串化本机 Error 对象。

问题:

尝试字符串化 Error 对象结果在空对象 ({}) 中,表明错误的信息不是捕获。

原因:

问题出在 Error 对象的原型属性中。堆栈和消息等关键属性的可枚举标志设置为 false。因此,JSON.stringify 在序列化过程中会跳过这些属性,留下一个空对象。

解决方案:

要避免此行为,需要手动提取使用 Object.getOwnPropertyNames 获取 Error 对象的属性。然后,可以将这些属性作为替换函数传递给 JSON.stringify,以创建包含错误信息的 JSON 字符串:

JSON.stringify(err, Object.getOwnPropertyNames(err))
登录后复制

或者,您可以使用可枚举的属性创建自己的自定义错误对象,允许它们通过 JSON.stringify 正确地字符串化。

以上是为什么 JSON.stringify 无法字符串化错误对象以及如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板