Javascript 如果其他对象的名称/键不断更改,但要访问的对象的名称/键保持不变,如何访问WikipediaAPI中的对象?

Javascript 如果其他对象的名称/键不断更改,但要访问的对象的名称/键保持不变,如何访问WikipediaAPI中的对象?,javascript,wikipedia-api,Javascript,Wikipedia Api,我想从维基百科API获取图像。我在做前端开发,所以我只需要“获取”图像,没有后端 这是通用API: https://en.wikipedia.org/w/api.php?action=query&titles=Image:Title_to_be_inserted_hered.jpg&prop=imageinfo&iiprop=url 当在图像:之后插入标题时,将返回一个对象列表,其中包括图像的url,该url稍后将插入到网页中 但是,在尝试了三个标题(意大利、爱因斯坦和

我想从维基百科API获取图像。我在做前端开发,所以我只需要“获取”图像,没有后端

这是通用API:

https://en.wikipedia.org/w/api.php?action=query&titles=Image:Title_to_be_inserted_hered.jpg&prop=imageinfo&iiprop=url
当在
图像:
之后插入标题时,将返回一个对象列表,其中包括图像的url,该url稍后将插入到网页中

但是,在尝试了三个标题(意大利、爱因斯坦和奥巴马)之后,返回的对象参数不同,但URL对象始终存在

您可以注意到,“Pages对象”后面的内容总是会发生变化

奥巴马:

https://en.wikipedia.org/w/api.php?action=query&titles=Image:obama.jpg&prop=imageinfo&iiprop=url
意大利:

https://en.wikipedia.org/w/api.php?action=query&titles=Image:italy.jpg&prop=imageinfo&iiprop=url
爱因斯坦:

https://en.wikipedia.org/w/api.php?action=query&titles=Image:einstein.jpg&prop=imageinfo&iiprop=url

我只想获取URL(使用Ajax或JSON)并将其存储到脚本文件中的变量中。

一种方法是使用。例如:

var pages = obj.query.pages,  // Get the pages object
    firstPage = pages[Object.keys(pages)[0]],  // Get the first page in the pages object
    src = firstPage.imageinfo[0].url;  // Get the first image url from the page above
下面是一个实际示例,其中数据来自您的一个示例:

var data={“continue”:{“iistart”:“2007-04-19T23:10:16Z”,“continue”:“| |”},“query”:{“normalized”:[{“from”:“Image:obama.jpg”,“to”:“File:obama.jpg”},“pages”:{“pageid”:10783885,“ns”:6,“title”:“File:obama.jpg”,“imagerepository”:“local”,“imageinfo”:[{“url”:https://upload.wikimedia.org/wikipedia/en/7/7a/Obama.jpg“,“描述URL”:"https://en.wikipedia.org/wiki/File:Obama.jpg“,”说明短片“:”https://en.wikipedia.org/w/index.php?curid=10783885"}]}}}};
var pages=data.query.pages,
src=pages[Object.keys(pages)[0]].imageinfo[0].url;

在我看来,document.write(src);
在所有3个URL上都是非常简单的JSON结构

结构始终是

query -> pages -> imageinfo -> url

结果中的信息似乎有点变化,但完整图像url似乎与上面所示的JSON结构相同。

它是pageid。由于您只请求一个页面,您可以忽略它,只访问它是什么。我的答案是否回答了问题?@mevius It,非常感谢