【问题标题】:Node.js: Parse JSON objectNode.js:解析 JSON 对象
【发布时间】:2011-09-23 02:14:29
【问题描述】:

我收到一个 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));
    });
});

然后打印出来:

BODY: [{"buck":{"email":"chris@example.com"}}]

但现在我无法读取其中的任何内容。如何获取“电子邮件”字段?

谢谢

【问题讨论】:

    标签: javascript json node.js


    【解决方案1】:

    你应该按照以下方式做一些事情:

    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 );
        })
    
    });
    

    如果我没记错的话。

    【讨论】:

    • 最终调用应该是 res.on('end', function(err) { ... }); nodejs.org/docs/v0.4.8/api/http.html#event_end_
    • 从服务器获取 json 似乎需要做很多工作。现在节点中有什么可以缩短这个...我认为 jQuery 宠坏了我 $.get('url', function(d) { console.log(d); });
    • 使用 data = [] 然后 data.push(chunk) 然后 JSON.parse(data.join('')) 更好吗?因为字符串是不可变的?
    • 不是真的,至少在 V8 中不是。 stackoverflow.com/questions/7299010/…
    • 解析后如何获取req.param? Req 不是输入。
    猜你喜欢
    • 2015-05-16
    • 2016-11-16
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    相关资源
    最近更新 更多