2015-01-17 9 views
-1

그래서 nodejs를 사용하여 json을 구문 분석하고 객체 배열을 가져 와서 각 루프에 대해 값을 사용하고 싶습니다.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' ] 

가 지금은 각 루프에 대한 그들 각각의 문자열을 사용하고 싶습니다. 내가 사용하고있는 데이터를 사용하여 시도했지만 아무것도 작동하지 않을 수 있습니다. 도와 줘서 고마워! 다른 것들을 자유롭게 물어 보면 행복하게 편집 할 수 있습니다.

+3

문제점이 무엇인지 이해가되지 않습니다. 'data.chatters.views.forEach'를하고 올바른 출력을 얻지 못하고 있습니까? –

+0

처음으로 nodejs를 실제로 사용했습니다. 나는 각각의 잘못에 대해 사용 해왔다. 내가 뭔가를 얻을 수 있는지, 결과가 나오지 않을지 알게 될 것입니다. 감사! –

+1

문제가 JSON 구문 분석과 관련이없는 것처럼 보입니다. _ 무엇이 문제입니까? –

답변

0

몇 가지 다른 방법이 있습니다. '에 ..에 대한'사용

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

:

루프 카운터를 사용

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

당신이 사용하려는되었을 수도 있지만, 루프 변수는 배열의 인덱스를 포함 , 아니라 값. 이 중 어느 것도 Node.js를 또는 JSON 응답 특정 없다는 것을

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

참고 : Array.prototype.forEach()를 사용하여

.

+0

[... 왜 "for ... for"for "배열 반복과 같은 나쁜 생각입니까?]"(http://stackoverflow.com/questions/500504/why-is-using-for-in - 배열 반복과 같은 나쁜 아이디어 – Xotic750