2

我正在尝试从 http.get 解析 JSON 正文。我知道 JSOn 对象是有效的,因为我可以成功评估:

var json = document.body.innerText; 
obj = JSON.parse(json);

但是,此代码返回错误:

undefined:1
undefined{
Syntax error, Unexpected token u

我的节点代码:

function getCategories(callback){
    var body;
    var urlCats = "http://...";
    process.send(urlCats);
    http.get(urlCats, function(res){
        res.on('data', function (chunk) {
            body += chunk;
        });
        res.on('end', function () {
            callback(JSON.parse(body));
        });
    })
}

我已经看过使用 Node.js 调用 JSON API,但我认为它不适用,因为我已经正确获取了主体(尽管对象以:undefined{ 开头,但回调(主体)打印正常)。有什么建议么?我应该剪掉我身体字符串的“未定义”部分吗?一定有我想念的东西!谢谢!

4

1 回答 1

4

问题是你的


 var body;
 ...
 body += chunk;

body 已声明,但值为“未定义”。

因此第一个 body += "something" 转换为 body = undefined + "something"。

改变


 var body;


 var body = "";

应该解决问题。

希望这可以帮助,

于 2013-11-11T19:03:31.883 回答