2014-11-20 3 views
0

Я пытаюсь разобрать ответ, который я получаю от запроса к Tinysong. Я могу сделать get и иметь его console.log, но после этого я ничего не могу сделать с данными. Я думаю, это из-за того, как я его захватываю. Полное раскрытие это мой первый раз, сделав это, поэтому я просто собрал много разных примеров.Parsing Tinysong return with 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) 
     }); 
    })