【问题标题】:Accessing JSON objects nested inside array访问嵌套在数组中的 JSON 对象
【发布时间】:2020-02-02 17:26:04
【问题描述】:

我一直在尝试从this API 访问 JSON。但是,当我运行一个检索 JSON 的请求时,我在运行此代码时遇到了以下列表。

const request = require('request');

var url = 'https://api.collegefootballdata.com/rankings?year=2019&week=10&seasonType=regular'
request(url,(err, res, body) => {
    if(!err && res.statusCode == 200) {
        var obj = JSON.parse(body);
        console.log(obj);
    }
});

我的输出:

[
  {
    season: 2019,
    seasonType: 'regular',
    week: 10,
    polls: [ [Object], [Object], [Object] ]
  }
]

我的问题在于我想要来自每个 POLL 的信息(通过链接在 JSON 中列为对象的 5 个轮询,但是我不知道如何使用它。)例如,我想要调用 polls[0].rank 以填充投票中排名前 25 的团队的列表。

访问嵌套 JSON 中的对象数组显然是我在 Node 中遇到的一个问题,并且希望在处理这个项目时从正确的角度开始。

【问题讨论】:

标签: javascript node.js json nested


【解决方案1】:

查看 JSON,有 3 个独立的民意调查,每个民意调查在 ranks 中都有自己的前 25 名列表。

obj.polls[0].ranks
obj.polls[1].ranks
obj.polls[2].ranks

ranks 也是对象数组,所以如果您想查看学校,参考文献将是

obj.polls[0].ranks[0].school

您可以在浏览器中使用开发人员工具和“网络”选项卡轻松检查 JSON。

【讨论】:

  • 当试图调用那个例子时 (console.log(obj.polls[0].ranks.school) 我仍然得到“console.log(obj.polls[0].ranks[0 ].school); ^ TypeError: Cannot read property '0' of undefined"
  • 试试obj[0]——只需要找到问题的根源(双关语)
  • 到达某个地方!民意调查不再在我的数组中显示为“对象”。 => { season: 2019, seasonType: 'regular', week: 10, polls: [ { poll: 'Coaches Poll', 排名: [Array] }, { poll: 'AP Top 25', 排名: [Array] } , { poll: 'FCS Coaches Poll', ranks: [Array] } ] } 执行 obj[0].polls[0] 时,它会加载!我想我只是不知道我必须先索引整个对象。
【解决方案2】:

因为pollsarray,我很乐意使用map 所以我的代码可能是

obj.polls.map((pol)=>{ // so you can access the object pol which includes ranks and other proprites // do whatever you want here }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    • 2017-11-27
    • 1970-01-01
    • 2022-01-08
    相关资源
    最近更新 更多