如何获取JSON-P数据的元素

时间:2014-04-17 17:33:48

标签: javascript json

我有来自Google API的数据Feed:

https://spreadsheets.google.com/feeds/list/0AhySzEddwIC1dEtpWF9hQUhCWURZNEViUmpUeVgwdGc/1/public/basic?alt=json

我已经与它合作了一段时间,但无法设法获得富时100指数公司的具体名称。

目前我正在使用以下代码来获取数据,但我没有得到我期望的控制台输出。

$(function() {
    data = $.getJSON("https://spreadsheets.google.com/feeds/list/0AhySzEddwIC1dEtpWF9hQUhCWURZNEViUmpUeVgwdGc/1/public/basic?alt=json-in-script"), 


  console.log(data);

});

我在控制台中得到的是这些东西?

Object {readyState: 1, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
     abort: function (e){var t=e||w;return u&&u.abort(t),k(0,t),this}
     always: function (){return i.done(arguments).fail(arguments),this}
     etc etc

我希望记录富时100指数公司的所有名称,有什么帮助吗?

谢谢, 伊万

1 个答案:

答案 0 :(得分:2)

你应该写:

$.getJSON("https://spreadsheets.google.com....", function(data) {
    console.log(data);
});

为什么?

getJson文档中所述:

  

从jQuery 1.5开始,所有jQuery的Ajax方法都返回了一个超集   XMLHTTPRequest对象。这个jQuery XHR对象,或“jqXHR”,   由$.getJSON()返回实现Promise接口,给出它   Promise的所有属性,方法和行为(请参阅Deferred   对象以获取更多信息)。

getJson方法返回一个Promise对象,即您在控制台中打印的对象。简单来说,承诺是将来可用的东西,但现在不是。一旦ajax调用实际返回数据,就会调用作为paremeter(回调函数)传递的函数。