如何 select 来自 JSONP 语句的变量

How to select a variable from JSONP statement

我有以下 Ajax 使用维基百科 API 到 return 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>"

如何 select extract 并将其保存为字符串? var extractText = data.query.pages[0].extract returns query 作为未定义的错误。

尝试:

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

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);
        }
      }
    }
});