Javascript 如果其他对象的名称/键不断更改,但要访问的对象的名称/键保持不变,如何访问WikipediaAPI中的对象?
我想从维基百科API获取图像。我在做前端开发,所以我只需要“获取”图像,没有后端 这是通用API: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稍后将插入到网页中 但是,在尝试了三个标题(意大利、爱因斯坦和
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,非常感谢