JSON没有被$ .getJSON抓取

时间:2017-06-09 19:05:53

标签: javascript jquery json getjson

最终解决方案: 我的bin文件的格式错误比我在问题中包含的代码段更深入。现在一切正常。非常感谢评论中的每个人,我将@ TWLATL的答案标记为正确,因为它是一个格式良好的函数解决方案,我可以在以后的项目中使用。

我正在尝试从.jsondata.json目录中)访问我的script.js文件,但它似乎根本没有运行。在我处理错误之前,我没有表明该函数已经运行。感谢评论,我将root替换为.error,但我仍然无法弄清楚它失败的原因。

的index.html

.fail

的script.js

<body>
    <h1>JSON Render</h1>
    <div id="fileViewer"></div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="script.js"></script>
</body>

data.json(样本)

$.getJSON('data.json', function(data) {
    console.log('json grabbed')
    console.log(data);
})
.fail(function(data) {
    console.log("GetJSON Error!");
    console.log(data);
});

$.ajax({
    url: 'data.json',
    dataType: 'json',
    success: function( data ) {
        console.log( "SUCCESS: " );
        console.log( data );
    },
    error: function( data ) {
        console.log( "AJAX ERROR: " );
        console.log( data );
    }
});

我一直在寻找Stack Overflow,我找不到任何解决方案似乎解决了我的问题。救命啊!

编辑:将jQuery CDN添加到我的{ "children": [ { "name": "Main Folder", "type": "folder" }, { "name": "Private folder", "type": "folder" } ] } 。它就在那里。我只是忘了把它放在问题中。

编辑2:更新了script.js以反映返回以下屏幕截图的代码。 (屏幕截图在对象的中间切断。如果对象的上下文实际上是相关的,我可以包含更多。) console output

编辑3:新的AJAX错误处理: 新的ajax功能:

index.html

我现在很好地获得了这个控制台输出: new console output

2 个答案:

答案 0 :(得分:2)

使用稍微修改过的代码版本,我让它返回JSON就好了:

http://plnkr.co/edit/DMLyJa1Quj7ofszn5Y7o?p=info

&#13;
&#13;
$(document).ready(function() {
  console.log("ready!");

  var items;

  $.getJSON('data.json', function(data) {
      console.log('json grabbed');
    })
    .done(function(data) {
      items = data.children;
      console.log(items);
    })
    .fail(function(data) {
      console.log("Error!");
    });

}); // close document.ready
&#13;
&#13;
&#13;

Jquery现在使用.done作为成功方法。在那个块中,只需将data.children项分配给变量,就可以了。

答案 1 :(得分:0)

感谢评论中的每个人,我能够解决问题。它实际上是一个JSON格式问题。我使用此网站查找问题所在:https://jsonformatter.curiousconcept.com/