如何访问Wikipedia API返回的JSON中的嵌套对象

从此查询到Wikipedia API:

http://en.wikipedia.org/w/api.php?action=query&prop=links&format=json&plnamespace=0& pllimit=10&titles=List%20of%20television%20programs%20by%20name

我得到一个JSON结构,例如:

 var data = { "query": { "pages": { "1536715": { "pageid": 1536715, "ns": 0, "title": "List of television programs by name", "links": [ { "ns": 0, "title": "$1.98 Beauty Show" }, { "ns": 0, "title": "''Dance Academy''" } ] } } }, "query-continue": { "links": { "plcontinue": "1536715|0|15\/Love" } } } 

我想使用"links"数组的元素。 但是,根据元素"pageid": 1536715的存在"pageid": 1536715 ,我怀疑嵌套对象"1536715"的名称是一个可能会改变的动态值。 我不愿意使用此名称来访问“links”数组,例如query.pages.1536715.links

有没有办法“ query.pages.*.links ”这个对象,即使用通配符query.pages.*.links ? 如果做不到这一点,我可以迭代pages的子pages来获取此对象吗? 我正在为这个项目使用jQuery 1.7.2,以防你可以从那里建议任何有用的方法。

是的,你需要循环它。 另请参阅使用jquery从wikimedia解析json字符串的类似问题。 您还可以使用indexpageids参数接收结果pageid列表。

 if (data && data.query && data.query.pages) var pages = data.query.pages; else // error: No pages returned / other problems! for (var id in pages) { // in your case a loop over one property var links = pages[id].links if (links) for (i=0; i 

这应该会让你到那儿…

 var links, i, pageID; for (pageID in query.pages) { links = query.pages[pageID].links; for (i=0; i