将DynamoDB响应转换为JSON
下面是我对dynamoDB的查询将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
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')。解组项目这为我实现了转换的技巧//这对你有用吗。解组应该由库本身为您处理。