Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从特定的wiki文章获取链接数组_Javascript_Arrays_Json_Web_Wikipedia - Fatal编程技术网

Javascript 从特定的wiki文章获取链接数组

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

我正在玩弄wiki API,试图从给定的文章返回一系列链接。这就是我正在使用的JSON类型:

{
  "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来访问它。可能重复的