将 DynamoDb 字符串集转换为 JSON

Convert DynamoDb stringset into JSON

这是从 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 来获取集合的值。