JQuery解析JSON的错误处理

Posted

技术标签:

【中文标题】JQuery解析JSON的错误处理【英文标题】:Error Handling in Parsing JSON by JQuery 【发布时间】:2012-06-11 08:45:02 【问题描述】:

好的,我有以下代码,它使用 jquery 的 $.parseJSON 从 ajax 响应中解析 JSON

try
   var indata = $.parseJSON(rsp);
catch(err)
   alert("an error occured");

现在我想优雅地覆盖任何可能的错误,我尝试进行一些错误处理,通常是try and catch,现在这段代码不起作用。我故意做了一些格式错误的 JSON 并将其传递给$.parseJSON,但它并没有真正起作用。现在我的问题是如何优雅地处理这个错误

【问题讨论】:

那个should work fine(我在Chrome中试过)。实际发生了什么? 它并没有真正起作用。我的萤火虫仍然捕捉到错误。如果我关闭了萤火虫,它会跳过捕获 @JamesAllardice 在我的情况下它并没有真正起作用..当然它不是我真正的代码,但它是我最接近的代码 尝试更具体,而不仅仅是“不起作用”。 “不起作用”并没有真正的意义。 【参考方案1】:

代码很好,它应该可以工作,如果没有尝试用 'jQuery' 代替 '$'。例如

try
  var indata = jQuery.parseJSON(rsp);
catch(err)
  alert("an error occured");

【讨论】:

【参考方案2】:

来自jQuery API documentation:

在 jQuery 1.9 之前,如果 $.parseJSON 被传递一个空字符串、null 或未定义,即使它们不是有效的 JSON,它也会返回 null 而不是抛出错误。

您使用的 jQuery 版本是否早于 1.9?

【讨论】:

【参考方案3】:

我建议在 jquery ajax 错误回调中处理错误。如果将 dataType 指定为 json,如果 json 字符串的格式不正确,您应该以 error 回调而不是 success 结束

【讨论】:

以上是关于JQuery解析JSON的错误处理的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 12c JSON TABLE 解析错误处理

JSON解析错误,出现双引号,反斜杠处理办法

ios JSON解析常见错误

json数据解析出错应该怎么办

无返回时处理 JSON 解码错误

处理播放应用程序中第三方服务的JSON解析错误