Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON语法和$.getJSON无效_Javascript_Jquery_Json - Fatal编程技术网

Javascript JSON语法和$.getJSON无效

Javascript JSON语法和$.getJSON无效,javascript,jquery,json,Javascript,Jquery,Json,我有一个包含以下内容的JSON文件my.JSON: { title: "My Title", } 还有一个jQuery代码段可以阅读: var reading_file = $.getJSON('my.json', function (data) { alert('Success.'); } 回调中的alert()永远不会被调用,因为JSON文件中有一个错误,即title未包装为字符串,如“title”中所示 在浏览器(Chrome)上运行时,不会抛出错误或任何错误指示。具

我有一个包含以下内容的JSON文件my.JSON:

{   
    title: "My Title",
}
还有一个jQuery代码段可以阅读:

var reading_file = $.getJSON('my.json', function (data) {
  alert('Success.');
}
回调中的alert()永远不会被调用,因为JSON文件中有一个错误,即
title
未包装为字符串,如
“title”
中所示

在浏览器(Chrome)上运行时,不会抛出错误或任何错误指示。具体来说,
my.json
已正确检索(状态代码:200),尽管
读取\u file.state()
始终处于
挂起状态

我的问题是:

  • 捕捉此类错误(即无效JSON数据/语法)的好方法是什么
  • 函数(数据){alert…}
    回调中,这个
    指的是什么
  • 谢谢。

    来自

    在jQuery1.4中,JSON数据被严格解析;任何格式错误的JSON都将被拒绝,并引发解析错误

    您将使用错误处理程序捕获错误。差不多

    var reading_file = $.getJSON('my.json', function (data) {
      alert('Success.');
    }).error(function(jqXHR, textStatus, errorThrown) {
        alert("Stop! Error time!");
    });
    
    更新

    正如前面提到的,
    在成功回调上下文中,此
    不是Ajax事件。它似乎是从

    在jQuery1.4中,JSON数据被严格解析;任何格式错误的JSON都将被拒绝,并引发解析错误

    您将使用错误处理程序捕获错误。差不多

    var reading_file = $.getJSON('my.json', function (data) {
      alert('Success.');
    }).error(function(jqXHR, textStatus, errorThrown) {
        alert("Stop! Error time!");
    });
    
    更新


    正如前面提到的,
    在成功回调上下文中,此
    不是Ajax事件。它似乎是传递给
    $.ajax()

    的配置对象,我很确定
    这个
    引用了ajax请求
    $.getJSON
    只是以某种方式使用
    $.ajax
    的快捷方式,从jQuery API文档中可以看出,“从jQuery 1.4开始,如果JSON文件包含语法错误,请求通常会无提示地失败。因此,请避免频繁手动编辑JSON数据。”为什么不尝试
    $.getJSON(“url”,function(){})。error(function(jqXHR,textStatus,errorhorn){alert(textStatus+“-”+errorhorn);});
    谢谢(+1),@Ian!与您的其他评论相关,我想知道您是如何发现
    实际上是指
    ajaxSettings
    对象的?也许我的问题比这更基本:当我在
    警报
    行上设置断点并调查
    此构造函数
    返回调用本机代码。因此,如果执行
    alert({}.constructor);
    你会得到同样的东西,就像你提醒
    这个.constructor
    ,这是你所期望的,因为它们都是对象文本。现在,我对构造函数、原型或诸如此类的东西了解不够,无法向你解释更多关于
    构造函数的东西:)其他事情,我很确定
    这个
    引用了AJAX请求
    $.getJSON
    只是以某种方式使用
    $.ajax
    的快捷方式,从jQuery API文档中可以看出,“从jQuery 1.4开始,如果JSON文件包含语法错误,请求通常会无提示地失败。因此,请避免频繁手动编辑JSON数据。”为什么不尝试
    $.getJSON(“url”,function(){})。error(function(jqXHR,textStatus,errorhorn){alert(textStatus+“-”+errorhorn);});
    谢谢(+1),@Ian!与您的其他评论相关,我想知道您是如何发现
    实际上是指
    ajaxSettings
    对象的?也许我的问题比这更基本:当我在
    警报
    行上设置断点并调查
    此构造函数
    返回调用本机代码。因此,如果执行
    alert({}.constructor);
    你会得到同样的东西,就像你提醒
    这个.constructor
    ,这是你所期望的,因为它们都是对象文本。现在,我对构造函数、原型或诸如此类的东西了解不够,无法向你解释更多关于
    构造函数的东西:)其他事情,也许它更像是一个
    -1/2
    <代码>此
    不引用链接到的Ajax事件。回调是一个Ajax事件。但是在回调内部,
    这个
    引用了传递给
    $.ajax
    调用的
    ajaxSettings
    对象。@Ian啊,我当时读错了文档。他们所指的“这是一个Ajax事件”并不完全清楚,他们也不清楚它的定义,所以我想我只是通过阅读和/或亲自测试了解到了这一点。我早些时候试图收回否决票,但是没有编辑或其他什么的时间太长了,应该是
    -1/2
    <代码>此
    不引用链接到的Ajax事件。回调是一个Ajax事件。但是在回调内部,
    这个
    引用了传递给
    $.ajax
    调用的
    ajaxSettings
    对象。@Ian啊,我当时读错了文档。他们所指的“这是一个Ajax事件”并不完全清楚,他们也不清楚它的定义,所以我想我只是通过阅读和/或亲自测试了解到了这一点。我早些时候曾试图收回否决票,但没有编辑或其他什么的时间太长了