【问题标题】:Using nodejs to parse JSON使用nodejs解析JSON
【发布时间】:2015-03-16 07:20:23
【问题描述】:

所以,我正在使用 nodejs 来解析 json,并且我想要获取一个数组对象,并使用每个循环中的值。

我得到的 JSON:http://tmi.twitch.tv/group/user/loneztar/chatters

    var cronUsers = client.utils.cronjobs('1 * * * * *', function() {
    console.log('API Test');

    console.log('Response from Twitch Chat:');
    request('http://tmi.twitch.tv/group/user/loneztar/chatters', function (error, response, body) {
      if (!error && response.statusCode == 200) {
        data = JSON.parse(body);
        console.log(data.chatters.viewers);

        //for each string in the viewers

      }
    })
});

上面是我用来检索数据的代码。当我登录到控制台时,我得到以下信息(在询问时):

[ 'duckziller72',
'adanaran',
'nyckeln',
'diabolicalsheep69',
'audery101',
'gone_nutty',
'k4unl',
'eidokan',
'mattesolo',
'siland',
'nullvoid8',
'troy00114',
'sixdev',
'jake_evans',
'doctoranguus',
'juicegraip',
'k4rush' ]

现在我想在 for each 循环中使用它们中的每一个字符串。我已经尝试使用我正在使用的数据变量,但我无法得到任何工作。将不胜感激一些帮助!如有其他问题,请随时提出,我会很乐意编辑。

【问题讨论】:

  • 我不明白你的问题是什么。你在做data.chatters.views.forEach 却没有得到正确的输出吗?
  • 我第一次真正使用nodejs。我想我一直在使用每个错误。我会看看我是否可以得到一些工作,如果不能返回结果。谢谢!
  • 看起来问题与解析 JSON 无关。什么问题?
  • @JakeEvans,我会看一下 Array.prototype.forEach 的 MDN 文档。你可以做类似data.chatters.views.forEach(function (user) { console.log(user); })
  • 这正是我正在寻找的(显然是用它来做事,而不仅仅是记录)。非常感谢@NickTomlin :)

标签: javascript arrays json node.js foreach


【解决方案1】:

有几种不同的方法可以做到这一点。

使用循环计数器:

var viewers = data.chatters.viewers;
var numViewers = viewers.length;
for (var i = 0; i < numViewers; i++) {
    var viewer = viewers[i];
    console.log(viewer);
}

使用'for .. in':

var viewers = data.chatters.viewers;
for (var i in viewers) {
    var viewer = viewers[i];
    console.log(viewer);
}

您可能一直在尝试使用它,但循环变量包含数组的索引,而不是值。

使用 Array.prototype.forEach():

data.chatters.viewers.forEach(function(viewer) {
    console.log(viewer);
});

请注意,这些都不是特定于 Node.js 或 JSON 响应的。

猜你喜欢
  • 2016-04-17
  • 2015-06-28
  • 2015-08-16
  • 2018-05-25
  • 1970-01-01
  • 2016-11-04
  • 2015-05-28
  • 2018-09-18
  • 2012-01-16
相关资源
最近更新 更多