Конвертировать набор строк DynamoDb в формат JSON - PullRequest
0 голосов
/ 08 июля 2019

Это одно из полей типа StringSet , которое возвращается из DynamoDb.

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)}`);
    }});

Обработанные элементы [0] это

{ email: 'abc@gmail.com',
  tenant: 'Canada',
  permissions:
   Set {
     wrapperName: 'Set',
     values:
      [ 'BannerConfigReadOnly',
        'CampaignBannerCreate',
        'CampaignPromoCreate',
        'CampaignReadOnly',],
     type: 'String' } }

1 Ответ

1 голос
/ 08 июля 2019

Эти данные уже распакованы, так как вы используете DocumentClient. Попробуйте использовать processedItems[0].permissions.values для получения значений набора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...