Javascript从Wikipedia API

时间:2015-05-13 22:27:50

标签: javascript json api jsonp

如何从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>
&#13;
&#13;
&#13;

下面是它在Console中显示的内容。如何从以下内容中提取&#34;&#34; List_of_metropolitan_areas_by_population&#34;&#34;并显示在前端? enter image description here

2 个答案:

答案 0 :(得分:0)

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

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

而不是

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

这是一个链接到小提琴的链接:http://jsfiddle.net/zsaj950t/

答案 1 :(得分:0)

例如,如果你想提取“to:...”,那么只需查看你在Console中打开的对象。只需在

结尾处的“to”和“from”之间切换
data.query.normalized[0]

更改后的代码:

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