使用nodejs解析JSON

Using nodejs to parse JSON

所以,我正在使用 nodejs 来解析 json,我想获取一个对象,它是一个数组,并在 for each 循环中使用值。

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 循环中使用它们中的每一个字符串。我试过使用我正在使用的数据变量,但我无法正常工作。将不胜感激一些帮助!欢迎询问其他内容,我会很乐意编辑。

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

使用循环计数器:

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);
});

请注意,其中 none 特定于 Node.js 或 JSON 响应。