Javascript 从特定的wiki文章获取链接数组
我正在玩弄wiki API,试图从给定的文章返回一系列链接。这就是我正在使用的JSON类型:Javascript 从特定的wiki文章获取链接数组,javascript,arrays,json,web,wikipedia,Javascript,Arrays,Json,Web,Wikipedia,我正在玩弄wiki API,试图从给定的文章返回一系列链接。这就是我正在使用的JSON类型: { "continue": { "plcontinue": "22989|0|2007_Rugby_World_Cup", "continue": "||" }, "query": { "normalized": [ { "from": "paris", "to": "Paris" } ], "p
{
"continue": {
"plcontinue": "22989|0|2007_Rugby_World_Cup",
"continue": "||"
},
"query": {
"normalized": [
{
"from": "paris",
"to": "Paris"
}
],
"pages": {
"22989": {
"pageid": 22989,
"ns": 0,
"title": "Paris",
"links": [
{
"ns": 0,
"title": ", Île-de-France, Seine, Kingdom of France"
},
如您所见,我需要知道pageId,以便访问所需的链接数组。我尝试从plcontinue值中提取它,然后将其插入代码中,但它返回一个未定义的值
这是我的API请求:
$.ajax({
url: "https://en.wikipedia.org/w/api.php?action=query&titles=" + searchTerm + "&pllimit=50&prop=links&format=json",
method: "GET",
dataType: "jsonp" //allow CORS
}).then(function (data) {
var plcontinueArray = data.continue.plcontinue.split("|")
var pageId = plcontinueArray[0];
var links = data.query.pages.pageId.links;
当我在发出请求之前不知道pageId时,如何访问链接数组?与使用点表示法访问对象中的数据一样,也可以使用类似索引的方法访问对象的键 例如:
var obj = { foo: "bar", spam: "eggs" };
var value1 = obj.foo; // value1 = "bar"
var keyName = "spam";
var value2 = obj[keyName]; // value12 = "eggs"
以你为例,你可以这样做-
...
var pageId = plcontinueArray[0];
var links = data.query.pages[pageId].links;
与使用点表示法访问对象中的数据相同,也可以使用类似索引的方法访问对象的键 例如:
var obj = { foo: "bar", spam: "eggs" };
var value1 = obj.foo; // value1 = "bar"
var keyName = "spam";
var value2 = obj[keyName]; // value12 = "eggs"
以你为例,你可以这样做-
...
var pageId = plcontinueArray[0];
var links = data.query.pages[pageId].links;
您访问的页面ID不正确- 换行-
var links=data.query.pages.pageId.links代码>
到
var links=data.query.pages[pageId].links代码>您访问的页面ID不正确-
换行-
var links=data.query.pages.pageId.links代码>
到
var links=data.query.pages[pageId].links代码>您可以使用循环浏览页面
对象,以获取。。。在
循环中。
大概是这样的:
...
then(function (data) {
for(var pageId in data.query.pages) {
if (data.query.pages.hasOwnProperty(pageId)) {
console.log(data.query.pages[pageId].links);
}
}
});
希望能有所帮助。您可以使用循环浏览页面
对象,以便。。。在
循环中。
大概是这样的:
...
then(function (data) {
for(var pageId in data.query.pages) {
if (data.query.pages.hasOwnProperty(pageId)) {
console.log(data.query.pages[pageId].links);
}
}
});
希望有帮助。迭代data.pages
数组中的对象?只需迭代页面并获取每个页面<代码>用于(data.query.pages中的pageid)
然后获取data.query.pages[pageid].links
。我建议通过data.query.pages[pageid].links来访问它。data.pages
数组中的对象可能存在重复的迭代?只需迭代页面并获取每个页面<代码>用于(data.query.pages中的pageid)
然后获取data.query.pages[pageid].links
。我建议通过data.query.pages[pageid].links来访问它。可能重复的