使用Nodejs解析Tinysong返回

时间:2014-11-20 18:04:42

标签: javascript json node.js parsing

我正在尝试解析从查询到Tinysong的响应。我能够得到get并拥有它console.log但是之后我无法对数据做任何事情。我想这是因为我如何抓住它。完全披露这是我第一次这样做,所以我只是把很多不同的例子混在一起。

如果您导航到网址,则可以获得以下内容:

{"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

1 个答案:

答案 0 :(得分: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)
        });
    })