使用nodejs解析JSON

时间:2015-01-17 22:36:35

标签: javascript arrays json node.js foreach

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

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' ]

现在我想在每个循环中使用每个字符串。我已经尝试使用我正在使用的数据var,但我无法正常工作。非常感谢一些帮助!请随意询问其他内容,我很乐意编辑。

1 个答案:

答案 0 :(得分:0)

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

使用循环计数器:

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

在&#39;中使用&#39; ...

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响应的。