Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将DynamoDB响应转换为JSON_Json_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

将DynamoDB响应转换为JSON

将DynamoDB响应转换为JSON,json,amazon-web-services,amazon-dynamodb,Json,Amazon Web Services,Amazon Dynamodb,下面是我对dynamoDB的查询 var parse = AWS.DynamoDB.Converter.output; b.query(params, function(err, results) { if (err) { console.error("Unable to query. Error:", JSON.stringify(err, null, 2)); //callback(err); } else { consol

下面是我对dynamoDB的查询

var parse = AWS.DynamoDB.Converter.output;

b.query(params, function(err, results)  {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
        //callback(err);
    } else {
        console.log("Query succeeded.");
        console.log(JSON.stringify(results.Items));
        callback(null, results.Items);
        results.Items.forEach(function(element, index, array) {
        console.log( parse({"M": element.data.M }));
    });
    }
});
我的DynamoDB的回复是“results.Items”,如下所示

[{"id":{"S":"arena-MXHGMYzBBP5F6jztnLUdCL"},"data":{"M":{"phaseAngle":{"L":[{"N":"5.0753"},{"N":"5.0506"},{"N":"5.0267"},{"N":"5.0027"},{"N":"4.9793"},{"N":"4.9558"},{"N":"4.9319"},{"N":"4.9077"},{"N":"4.8835"},{"N":"4.8593"}]},"unitID":{"S":"arena-MXHGMYzBBP5F6jztnLUdCL"},"type":{"S":"DATA"},"version":{"S":"1.0.0"},"timestamp":{"N":"1582920097000"},"frequency":{"L":[{"N":"59.9596"},{"N":"59.9635"},{"N":"59.9619"},{"N":"59.9632"},{"N":"59.9616"},{"N":"59.9621"},{"N":"59.9619"},{"N":"59.9613"},{"N":"59.9613"},{"N":"59.9608"}]},"voltage":{"L":[{"N":"122.5669"},{"N":"122.5473"},{"N":"122.5593"},{"N":"122.5627"},{"N":"122.5382"},{"N":"122.5328"},{"N":"122.5758"},{"N":"122.5376"},{"N":"122.526"},{"N":"122.5364"}]}}},"timestamp":{"S":"1582920097000"}}]
我想把它转换成普通的JSON,类似这样的东西

[{"id":{"S":"arena-MXHGMYzBBP5F6jztnLUdCL"},"data":{"M":{"phaseAngle":{"L":[{"N":"5.0753"},{"N":"5.0506"},{"N":"5.0267"},{"N":"5.0027"},{"N":"4.9793"},{"N":"4.9558"},{"N":"4.9319"},{"N":"4.9077"},{"N":"4.8835"},{"N":"4.8593"}]},"unitID":{"S":"arena-MXHGMYzBBP5F6jztnLUdCL"},"type":{"S":"DATA"},"version":{"S":"1.0.0"},"timestamp":{"N":"1582920097000"},"frequency":{"L":[{"N":"59.9596"},{"N":"59.9635"},{"N":"59.9619"},{"N":"59.9632"},{"N":"59.9616"},{"N":"59.9621"},{"N":"59.9619"},{"N":"59.9613"},{"N":"59.9613"},{"N":"59.9608"}]},"voltage":{"L":[{"N":"122.5669"},{"N":"122.5473"},{"N":"122.5593"},{"N":"122.5627"},{"N":"122.5382"},{"N":"122.5328"},{"N":"122.5758"},{"N":"122.5376"},{"N":"122.526"},{"N":"122.5364"}]}}},"timestamp":{"S":"1582920097000"}}]

我使用了AWS.DynamoDB.Converter.output;和parse({“M”:element.data.M})给出了完美的json,但我无法返回该输出。有什么帮助建议吗?谢谢

解决方案: 导入这个
var unmarshalItem=require('dynamodb-marshaler')。unmarshalItem
我在“results.Items”中得到了响应,现在您可以这样做以完美地获得正常的json格式

var items = results.Items.map(unmarshalItem);
        console.log(items);
        callback(null, items);

但是我看到这个npm软件包被弃用了,所以我将尝试使用最新的
DynamoDB/Converter
进行更新。

“但是我无法返回该输出。”为什么?听起来你已经找到了解决方案,但因为其他问题而放弃了?@MarkB嘿,我的意思是我能够返回那个输出,但是
AWS.DynamoDB.Converter.output这对我来说是不对的。经过更多的搜索,我找到了
('dynamodb-marshaler')。解组项目
这为我实现了转换的技巧//这对你有用吗。解组应该由库本身为您处理。