将响应缓冲区转换为JSON

时间:2018-08-02 17:01:25

标签: javascript json buffer

在AWS中,我通过带有https模块的Lambda发出了一个get请求。我可以返回数据,但是当我调用callback(null, obj)

时,它是缓冲区格式
https.get(options, (res) => {
    res.on('data', (d) => {
        var foo = (JSON.stringify(d));
        var foo1 = d.toString('utf8');

        var obj = {
            bar: foo,
            bar1: foo2
        };

        callback(null, obj);
    });
  }).on('error', (e) => {
    console.error(e);
});

返回此:

Response:
{
   "bar": "{\"type\":\"Buffer\",\"data\":[31,153,38,35,...]}",
   "bar1": "[{\"app_id\":1111111,\"user_id\":111111,....\"}]"
}

如何将其转换为JSON?

1 个答案:

答案 0 :(得分:0)

我知道了。有了tomfa的代码,可以在这里找到:BinArraytoJson,我只是这样做了:

var binArrayToJson = function(binArray) {
    var str = "";
    for (var i = 0; i < binArray.length; i++) {
        str += String.fromCharCode(parseInt(binArray[i]));
    } 
    return JSON.parse(str)
}

然后: JSON.parse(binArrayToJson(yourBinArray));