我正在使用JavaScript在AWS Lambda中创建一个项目,我正在以JSON格式从DynamoDB表接收数据,然后我将其转换为字符串。我需要找到最简单的方法来分割这个字符串,这样数据库中的每一列都将它自己的值保存在它自己的字符串变量中。 这是我的代码示例:
function readDynamoItem(params, callback) {
var AWS = require('aws-sdk');
AWS.config.update({region: AWSregion});
var dynamodb = new AWS.DynamoDB();
console.log('reading item from DynamoDB table');
dynamodb.scan(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else{
console.log(data); // successful response
callback(JSON.stringify(data));
}
});
}
回调的响应将导致:
{\"Items\":[{\"id\":{\"S\":\"5\"},\"message\":{\"S\":\"hello\"}}],\"Count\":1,\"ScannedCount\":6}
所以在这种情况下,我需要一个名为id的字符串,其中包含“5”和一个名为message的字符串,其中包含“hello”。我已经研究过使用.split()函数但我不确定如何在没有所有{\“S \”:\“等部分的情况下获取字符串 任何帮助将不胜感激
答案 0 :(得分:0)
您的data
变量已经拥有一个对象。将其传递给回调无需进行字符串化是正确的方法。通过该回调,您可以轻松地添加ID字段,如下所示:
var id = data.Items[0].id;
var message = data.Items[0].message
您可以添加一些关于数组中有效项目数的逻辑。
答案 1 :(得分:0)
我认为您应该将数据保持为JSON而不是字符串,然后:
var myObj;
var items = data.Items;
for(var key in items) {
myObj[key] = items[key];
}