Node.js:解析JSON对象

don*_*ald 22 javascript json node.js

我收到一个JSON对象:

http.get(options, function(res) {
    res.on('data', function (chunk) {
        console.log('BODY: ' + chunk);
        var obj = JSON.parse(chunk);
        console.log(sys.inspect(obj));
    });
});
Run Code Online (Sandbox Code Playgroud)

它打印:

BODY: [{"buck":{"email":"chris@example.com"}}]
Run Code Online (Sandbox Code Playgroud)

但现在我无法阅读其中的任何内容.我如何获得"电子邮件"字段?

谢谢

Rob*_*itt 51

你应该做的事情是:

http.get(options, function(res){
    var data = '';

    res.on('data', function (chunk){
        data += chunk;
    });

    res.on('end',function(){
        var obj = JSON.parse(data);
        console.log( obj.buck.email );
    })

});
Run Code Online (Sandbox Code Playgroud)

如果我没错的话.

  • 最后的调用应该是res.on('end',function(err){...}); http://nodejs.org/docs/v0.4.8/api/http.html#event_end_ (7认同)
  • 使用data = []然后使用data.push(chunk)然后使用JSON.parse(data.join(''))更好吗?因为字符串是不可变的? (2认同)