这是从 DynamoDb 返回的 StringSet 类型的字段之一。
permissions:
Set {
wrapperName: 'Set',
values:
[ 'BannerConfigReadOnly',
'CampaignBannerCreate',
'CampaignPromoCreate',
'CampaignReadOnly',
'MasterplanReadOnly',
'SegmentCreate',
'SegmentDownload',
'SegmentUpload' ],
type: 'String' }
}
现在,我正在使用 aws.DynamoDB.Converter.unmarshal 函数来获取此格式
permissions: ['BannerConfigReadOnly',
'CampaignBannerCreate',
'CampaignPromoCreate',
'CampaignReadOnly',
'MasterplanReadOnly',
'SegmentCreate',
'SegmentDownload',
'SegmentUpload']
但是,这就是我得到的
{}
任何想法,我可能做错了。
这是我的代码
const aws = require('aws-sdk');
const documentClient = new aws.DynamoDB.DocumentClient();
documentClient.scan(params, (err, data) => {
if (err) {
reject(err);
} else {
let processedItems = [...data.Items];
var test = aws.DynamoDB.Converter.unmarshall(processedItems[0].permissions);
console.log(`test is ${JSON.stringify(test)}`);
}});
ProcessedItems[0]是这个
{ email: 'abc@gmail.com',
tenant: 'Canada',
permissions:
Set {
wrapperName: 'Set',
values:
[ 'BannerConfigReadOnly',
'CampaignBannerCreate',
'CampaignPromoCreate',
'CampaignReadOnly',],
type: 'String' } }
最佳答案
由于您正在使用 DocumentClient
,因此该数据已被解码。考虑仅使用processedItems[0].permissions.values
来获取集合的值。
关于javascript - 将 DynamoDb 字符串集转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56940819/