如何从JSONP语句中选择变量

时间:2015-01-11 22:52:28

标签: javascript ajax json jsonp

我有以下Ajax使用Wikipedia API返回Bon Jovi的jsonp结果:

var wikiUrl = 'Bon_Jovi';

function getAbout(wikiUrl){
    $.ajax({
        url: 'http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=' + wikiUrl,
        dataType: 'jsonp',
        success: function (data) {
            console.log(data);
        }
    });
}

数据回复如下:

>Object {warnings: Object, query: Object}
   >query: Object
      >normalized: Array[1]
      >pages: Object
         >63123: Object
            >extract: "<p><b>Bon Jovi</b> is an American rock band...</p>"

如何选择extract并将其另存为字符串? var extractText = data.query.pages[0].extract返回query作为未定义的错误。

2 个答案:

答案 0 :(得分:1)

尝试:

var extractText = data.query.pages[63123].extract

答案 1 :(得分:1)

pages是一个对象,而不是一个数组。在这种情况下,数据位于63123属性下。除非你事先知道这个属性,否则你需要迭代属性。

实施例

var wikiUrl = 'Bon_Jovi';
$.ajax({
    url: 'http://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=json&exintro=&titles=' + wikiUrl,
    dataType: 'jsonp',
    success: function (data) {
      var pages = data.query.pages;
      for (var p in pages) {
        if(pages.hasOwnProperty(p)) {
          console.log(pages[p].extract);
        }
      }
    }
});