微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如果json键总是以不同/随机名称返回,如何绑定到json键?

我正忙着一个有角度的4.x应用程序,我试图显示随机的维基百科文章.我在查询/页面alwasys下的chrome dev工具中看到的JSON具有不同的nubered pageID.它不是将页面作为数组返回,而是将它作为JSON对象返回,它总是有一个不同的名称,所以我不知道如何将其转换为打字稿界面或绑定到它,因为名称不同?知道我怎么能这样做吗?

我从维基百科API获得的JSON:

{
  "batchcomplete": "",
  "continue": {
    "grncontinue": "0.241230031087|0.241230543855|19422120|0",
    "continue": "grncontinue||"
  },
  "warnings": {
    "extracts": {
      "*": "\"exlimit\" was too large for a whole article extracts request, lowered to 1."
    }
  },
  "query": {
    "pages": {
      "742585": {
        "pageid": 742585,
        "ns": 0,
        "title": "Speedway",
        "extract": "<p><b>Speedway</b> may refer to:</p>\n<h2><span id=\"In_racing\">In racing</span></h2>\n<ul><li>oval track racing, motor racing on an oval track which turns in one direction</li>\n<li>Cycle speedway, a form of bicycle racing</li>\n<li>Motorcycle speedway, a form of motorcycle sport</li>\n<li>Dirt track racing, kNown as speedway in Australia and New Zealand</li>\n</ul><h2><span id=\"Other_uses\">Other uses</span></h2>\n<dl><dt>Placenames</dt>\n</dl><ul><li>Speedway, California, former town in Butte County</li>..."
      }
    }
  }
}

解决方法:

使用Object.keys将对象内部的键作为数组获取

var data = {
  "batchcomplete": "",
  "continue": {
    "grncontinue": "0.241230031087|0.241230543855|19422120|0",
    "continue": "grncontinue||"
  },
  "warnings": {
    "extracts": {
      "*": "\"exlimit\" was too large for a whole article extracts request, lowered to 1."
    }
  },
  "query": {
    "pages": {
      "742585": {
        "pageid": 742585,
        "ns": 0,
        "title": "Speedway",
        "extract": "<p><b>Speedway</b> may refer to:</p>\n<h2><span id=\"In_racing\">In racing</span></h2>\n<ul><li>oval track racing, motor racing on an oval track which turns in one direction</li>\n<li>Cycle speedway, a form of bicycle racing</li>\n<li>Motorcycle speedway, a form of motorcycle sport</li>\n<li>Dirt track racing, kNown as speedway in Australia and New Zealand</li>\n</ul><h2><span id=\"Other_uses\">Other uses</span></h2>\n<dl><dt>Placenames</dt>\n</dl><ul><li>Speedway, California, former town in Butte County</li>..."
      }
    }
  }
};

var MyArray = Object.keys(data.query.pages);

console.log('MyArray: '+ JSON.stringify(MyArray));

// required Data

console.log('Page: '+ data.query.pages[MyArray[0]].pageid)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐