json - 将 DynamoDB 响应转换为 JSON
问题描述
以下是我对 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,看起来像这样https://jxr5e29we5.execute-api.us-east-1.amazonaws.com/prod/alldata
我使用了 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
并会在这里更新。
推荐阅读
- php - contact_us.php 没有向我的网站相关邮件地址发送电子邮件
- javascript - localStorage - 删除本地|基于键的存储值
- sql - 将选择查询结果转换为 Json
- vba - 根据像元值动态改变弧长 (Excel)
- c# - 如何在 ASP.NET Core Boilerplate Application 服务中上传包含其他数据的文件?
- angularjs - AngularJs 何时重新评估绑定函数?
- ssl - Nginx not taking into account renewed let's encrypt certificates
- javascript - 使用 AngularJS 的 JsonPlaceHolder 多个 api 调用
- javascript - 我在这个带有数组的高阶函数中做错了什么?JS
- java - 在当前主题中找不到样式“navigationViewStyle”