javascript - 在Nodejs中将流解析为对象

标签 javascript node.js stream amazon-web-services amazon-s3

我正在尝试在 Node.Js 中从 Amazon S3 存储中获取对象

当我将它保存到文件时,这完美地工作

amazon.getObject = function () {

    var options = {
        BucketName : 'mybucket',
        ObjectName : 'path/to/my.json',
        ResponseContentType : 'application/json'
    };

    s3.GetObject(options, function(err, data) {
        var fs = require('fs');
        var fd = fs.openSync('helloaa.json', 'w+');
        fs.writeSync(fd, data.Body, 0, data.Body.length, 0);
        fs.closeSync(fd);
    });

};

在。 helloaa.json 是:

{
    "hello": 1,
    "world": 3
}

但是。我不想将数据写入磁盘上的文件。

我想用 JSON.parse() 解析这个 json 对象;

当我在那里打印对象时:

    s3.GetObject(options, function(err, data) {
        console.log(JSON.stringify(data));
    });

在控制台中是这样的:

{"StatusCode":200,"Headers":{"x-amz-id-2":"N1gDLPam+fDCLWd9Q2NI62hizH7eXAjg
61oLYOkanLoSlqUlDl6tqasbfdQXZ","x-amz-request-id":"C53957DAF635D3FD","date"
:"Mon, 31 Dec 2012 00:11:48 GMT","last-modified":"Sun, 30 Dec 2012 23:22:57        "etag":"\"8677a54c9b693bb6fc040ede8cc6a\"","accept-ranges":"bytes","co
ntent-type":"application/json","content-length":"176","server":"AmazonS3"},
"Body":{"0":123,"1":10,"2":32,"3":32,"4":32,"5":32,"6":34,"7":105,"8":100,"
9":34,"10":58,"11":32,"12":49,"13":44,"14":10,"15":32,"16":32,"17":32,"18":

这是什么?

如何解析它?

是流媒体吗?

我可以将流保存到 NodeJs 中的对象吗?

最佳答案

你试过data.Body.toString()吗?

关于javascript - 在Nodejs中将流解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096124/

相关文章:

java - 用 Java 将输入流写入文件

Ruby 压缩流

javascript - YUI 无法识别

javascript - 使用 fetch post 请求进行正确的 Django CSRF 验证

javascript - 将复选框选择合并到appendChild中

node.js - 无法扩展接口(interface) 'http.IncomingMessage' 。你的意思是 'implements' 吗?

javascript - 使用 Javascript 从 json 数据动态嵌套 ul\li 列表

c++ - 使用 strstream C++ 将数字转换为字符串并返回

javascript - 是否可以找出输入字段的哪一行与每个正则表达式不匹配?

node.js - Azure Web App Bot - OAuth 完成后触发事件