2012-05-10 2 views
1

Я работаю с API wikipedia и имею проблемы с результатами, которые я получаю.Доступ к динамическому контенту с номерами

{"query":{ 
    "pages":{ 
     "48636":{ 
      "pageid":48636, 

Я не знаю, что идентификатор будет, когда я делаю вызов, как я могу получить доступ к 48636?

if gon.activateWiki 
    $(gon.keywords).each (index, element) -> 
    console.log element.name 
    $.getJSON('http://sv.wikipedia.org/w/api.php?action=query&format=json&prop=revisions%7Clinks%7Cimages%7Ccategories&rvprop=content&titles=' + element.name + '&callback=?' , (data) -> 
     console.log data.query.pages 
    ) 
+0

загрузить полный объект JSON. –

+1

Проблема не имеет ничего общего с JSON ... вы хотите знать, как получить доступ к неизвестным свойствам объекта. –

ответ

1

Вы хотите испытанный старый Object.keys

firstKey = Object.keys(data.query.pages).shift() 
lastKey = Object.keys(data.query.pages).pop() 
nthKey = Object.keys(data.query.pages)[n-1] 

firstPage = data.query.pages[firstKey] 
lastPage = data.query.pages[lastKey] 
nthPage = data.query.pages[n-1] 
+0

Это сработало! Благодаря! – Philip

1

Вы можете получить доступ к нему как массив:

console.log(data.query.pages["48636"]); 

Обновления:

Чтобы получить значения из неизвестного свойства объекта-х, нужно использовать for..in заявление. Или вы можете использовать slice метод и превратить свой объект в массиве:

var pages = Array.prototype.slice.call(data.query.pages); 
+2

Я думаю, проблема в том, что он не знает, что будет идентификатором страницы, а не тем, что он не может получить к нему доступ. –

+0

точно @RoryMcCrossan – Philip

+0

ok, я обновил свой ответ – antyrat

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