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的错误处理的主要内容,如果未能解决你的问题,请参考以下文章