所以,我正在使用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,但我无法正常工作。非常感谢一些帮助!请随意询问其他内容,我很乐意编辑。
答案 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响应的。