2014-11-20 43 views
0

我想解析從查詢到Tinysong的響應。我能夠得到並擁有它console.log,但我無法對數據做任何事情之後。我想這是因爲我如何捕捉它。完全披露這是我第一次做這個,所以我剛剛混合了很多不同的例子。解析Tinysong與Nodejs返回

如果navagate的URL,你得到的東西是這樣的:

{"Url":"http:\/\/tinysong.com\/1kxG6","SongID":41760691,"SongName":"Begin Again","ArtistID":9472,"ArtistName":"Knife Party","AlbumID":9855703,"AlbumName":"Abandon Ship"} 

這就是我。

function TinySong (A, S){ 
    A = A.replace(/ /g,"+"); 
    S = S.replace(/ /g,"+"); 
    var url = 'http://tinysong.com/b/' + A + "+" + S + '?format=json&' + TinyKey; 
    http.get(url, function(res){ 
     var bodyChunks = []; 
     res.on('data', function(chunk) { 
      bodyChunks.push(chunk); 
     }).on('end', function() { 
      var body = Buffer.concat(bodyChunks); 
//    console.log(url) 
      console.log('' + body); 
     }) 
    }); 
} 

此控制檯日誌是這樣的:

{"Url":"http:\/\/tinysong.com\/1ksPa","SongID":40778838,"SongName":"Cut Your Teeth (Kygo remix)","ArtistID":2002910,"ArtistName":"Kyla La Grange","AlbumID":9 
833902,"AlbumName":"Cut Your Teeth (Kygo remix)"} 

但是,如果我不使用console.log('' + body);我用console.log(body); 我得到這個:

<Buffer 7b 22 55 72 6c 22 3a 22 68 74 74 70 3a 5c 2f 5c 2f 74 69 6e 79 73 6f 6e 67 2e 63 6f 6d 5c 2f 31 6b 73 50 61 22 2c 22 53 6f 6e 67 49 44 22 3a 34 30 37 
37 ...> 

誰能幫我指點迷津我做錯了什麼。歡迎所有幫助和受過教育的人。

感謝 FPC

回答

0

想出答案。

http.get(url, function(res){ 
     var data = ''; 
     res.on('data', function (chunk){ 
      data += chunk; 
     }); 
     res.on('end', function(){ 
      var obj = JSON.parse(data); 
      console.log(obj) 
     }); 
    })