2015-05-13 3 views
1

Как извлечь названия (Список городских районов по численности населения) из википедии API (http://en.wikipedia.org/w/api.php?format=json&action=query&titles=List_of_metropolitan_areas_by_population&prop=revisions&rvprop=content&callback=?)Javascript извлекать данные из Википедии API

я смог получить данные из Википедии, но имеющие извлечение данных из него неприятности.

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>

ниже того, что он показывает в консоли. Как я могу извлечь "из:" List_of_metropolitan_areas_by_population "и показать в интерфейсе? enter image description here

+0

'query.normalized [0] .from' –

+1

Возможный дубликат [Как восстановить данные из Википедии API с помощью JSON?] (http://stackoverflow.com/questions/16735437/how-to-retrieve-data-from-wikipedia-api-using-json) – Roberto

ответ

0

Вы пытались сделать содержимое элемента HTML объектом javascript, поэтому вы видели результат, который вы видели. То, что вы хотите, это строка, поэтому вам нужно получить доступ к той части объекта, которая даст вам строку.

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

Вместо

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

Вот ссылка на скрипке, чтобы идти вместе с ответом: http://jsfiddle.net/zsaj950t/

0

Если вы хотите, например, извлечь «, чтобы: ... », просто посмотрите на объект, который вы открыли в консоли. Просто измените между "до" и "от" в конце

data.query.normalized[0] 

Измененный код:

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

Спасибо, что работает! – Ohsik

Смежные вопросы