【问题标题】:Unable to load JSON (Javascript)无法加载 JSON (Javascript)
【发布时间】:2016-07-24 07:55:27
【问题描述】:

我正在尝试通过链接加载 JSON 文件,然后将数据(如标题、日期等)与变量对齐,以便我可以使用它们。现在,我不在乎变量。我只是想提醒()他们,但似乎我做错了,警报什么也没返回!

我使用 JSfidle 来运行代码。代码是这样的:

var JSON_unparsed = $.getJSON('http://www.14deftera.gr/feeds/posts/default?orderby=published&alt=json') ;

var JSON = JSON.parse(JSON_unparsed) ;

alert(JSON.feed.entry[0].title.$t) ;

我要解析的网址是:http://www.14deftera.gr/feeds/posts/default?orderby=published&alt=json

如果对您有帮助的话,您可以在这里查看 JSON 的结构:

【问题讨论】:

标签: javascript jquery json web


【解决方案1】:

您可以为此使用JSONP

更新,以便更好地了解如何使用返回的 JSON。

var id, title;

$.ajax({
    url: 'http://www.14deftera.gr/feeds/posts/default?orderby=published&alt=json', 
    jsonp: "callback",    
    dataType: "jsonp"  
}).done(function(r){
    // r is returned JSON
    for(var i in r)    
        // for ex ID is this
        id = r[i].id.$t;
        // and title
        title = r[i].title.$t;
        // and so on, check the json, I mean check the browser console by hitting F12, below code will print the whole JSON 
        console.log(r[i]);
});

Codepen 链接:http://codepen.io/m-dehghani/pen/grXrrp?editors=0010

【讨论】:

  • 在哪里可以看到输出?
  • 编辑:我的意思是,如何将输出添加到变量中?
  • for 语句中,rreturned JSON,将代码编辑为console.log(r[i]); 以查看所有值。也删除if
  • @RadwanAhmet 请检查笔
  • @RadwanAhmet 工作了吗?如果是,请标记为答案,其他读者,谢谢
【解决方案2】:

除了 adeneo 的回复,在您的代码中,JSON_unparsed 变量保存了一个名为(differed 或 promise 对象)的东西,这个对象可能保存了其中的数据,但您使用了错误的方式将其拉出。为了让你把它弄出来,你需要调用 (.done()) 函数,见下文:

var JSON_unparsed = $.getJSON('http://www.14deftera.gr/feeds/posts/default?orderby=published&alt=json').done(function(json){
console.log(json);
console.log(json.feed.entry[0].title.$t);
});

除此之外,如果您遇到以下错误:

XMLHttpRequest cannot load http://www.14deftera.gr/feeds/posts/default?orderby=published&alt=json&_=1459788714707. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://stackoverflow.com' is therefore not allowed access.

表示不允许从当前域调用此 API/URL。

还有一点,如果你使用getJSON方法,返回的数据不需要解析,jquery会帮你解析

【讨论】:

  • 谢谢!但我仍然有一个问题,我不知道我做错了什么,但仍然无法正常工作。 i.imgur.com/83T2IF8.png
  • @RadwanAhmet, $ is not defined 错误意味着您没有包含 jQuery 库,或者您没有将代码包装在准备好的函数中:$(function(){});如果您使用 jsfiddle 发布代码会更好,这样我们可以更好地帮助您。 Mehdi下面的回复很好,我访问了他的codepen,他似乎忘记附加jQuery库,一旦我这样做了,它就很好了。
  • 现在我把 jquery 我发现这个代码也很好。但是如何将输出附加到变量?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 2014-04-05
  • 2013-10-16
  • 1970-01-01
  • 2016-12-29
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多