Javascript 从维基百科中提取数据 API

Javascript extract data from Wikipedia API

如何从 WIkipedia 中提取标题(按人口划分的大都市区列表)API(http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?)

我能够从维基百科获取数据,但无法从中提取数据。

function getJSONP(url, success) {
    var ud = '_' + +new Date,
        script = document.createElement('script'),
        head = document.getElementsByTagName('head')[0] || document.documentElement;

    window[ud] = function(data) {
        head.removeChild(script);
        success && success(data);
    };

    script.src = url.replace('callback=?', 'callback=' + ud);
    head.appendChild(script);

}
getJSONP('http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?', function(data){
    console.log(data);
    document.getElementById("output").innerHTML = data.query;
}); 
<div id="output">
    Want to display article title here.
</div>

下面是控制台中显示的内容。如何提取 "from: "List_of_metropolitan_areas_by_population"" 并显示在 front-end 中?

您试图将 HTML 元素的内容变成 javascript 对象,这就是您看到结果的原因。您想要的是字符串,因此您需要访问对象中会为您提供字符串的部分。

document.getElementById("output").innerHTML = data.query.normalized[0].from;

而不是

document.getElementById("output").innerHTML = data.query;

这里有一个 link 到 fiddle 以配合您的回答:http://jsfiddle.net/zsaj950t/

例如,如果您想要提取 "to: ...",那么只需查看您在控制台中打开的对象。只需在

末尾的 "to" 和 "from" 之间切换
data.query.normalized[0]

修改后的代码:

 function(data){
    document.getElementById("output").innerHTML = data.query.normalized[0].to
});