如何获取 JSON stringify 的错误消息?
Posted
技术标签:
【中文标题】如何获取 JSON stringify 的错误消息?【英文标题】:How to get the error message for JSON stringify? 【发布时间】:2016-06-07 19:49:33 【问题描述】:假设我有一个这样的对象
var obj =
"name": "arun"
age
当我尝试 JSON.stringify(obj) 时,我会收到一个错误,因为 obj 不正确。我想捕获控制台中显示的错误并将其显示在 UI 中。
stringify 函数有没有回调功能,这样我就可以做上面的事情了?
【问题讨论】:
***.com/questions/6041741/… 为什么不使用 try catch? ***.com/questions/4467044/… 【参考方案1】:首先认为有syntax error
,在"name": "arun"
之后需要添加,
我们无法以编程方式获取语法错误。 纠正这个语法错误后,你可以这样检查
try
var obj =
"name": "arun",
age
catch(e)
console.log(e);// you can get error here
【讨论】:
【参考方案2】:在这里,您不会从 JSON.stringify 中得到错误。
一旦你尝试创建这个对象,你就会得到一个错误。
var obj =
name: "Arun" // you're missing a comma
age //this is valid, as long as `age` exists as a variable above this point, in new browsers
;
在所有浏览器中,只要你运行这部分脚本,它就会抛出一个 SyntaxError,因为你缺少逗号。
如果您重新添加了该逗号,并且上面确实存在 age
:
var age = 32;
var obj =
name: "Arun",
age
;
这现在可以在全新的浏览器中正常工作,但在旧浏览器中会再次引发 SyntaxError。
该对象的旧兼容版本如下所示:
var age = 32;
var obj =
name: "Arun",
age: age
;
您遇到的问题似乎不是.stringify
会崩溃。
根据您提供的对象,您的陈述是错误的,句号。
【讨论】:
我知道对象有问题,我想验证那个有问题的 json 对象并告诉对象的第 3 行有一个错误。有什么办法吗? @ArunMohan 如果您在 javascript 中声明它,它不是 JSON 对象。var obj = ];
不是 JSON,它是 JS。它会在您尝试将其放入stringify
之前爆炸。如果您将其下载为 JSON 文本,那是非常不同的事情,然后您不会使用 stringify
,而是使用 parse
将字符串转换为 JS 对象。你是什么意思?【参考方案3】:
你可以试试下面的方法:
var age = 34;
ar obj = name: "arun", age
console.log(JSON.stringify(obj));
【讨论】:
以上是关于如何获取 JSON stringify 的错误消息?的主要内容,如果未能解决你的问题,请参考以下文章
循环引用阻止 jsonwebtoken.sign JSON.stringify 的原因
Firebase 云消息传递 - 发布消息说 JSON 有效负载无效
在nodejs中 Object的toString()方法 querystring的stringify() JSON.stringify()