'Unmarshall of string set in DynamoDB fails
I have tried to marshall DynamoDB's String Set and unmarshall it back as below.
import {marshall, unmarshall} from '@aws-sdk/util-dynamodb';
test('Marshall and Unmarshall Test', () => {
const raw = {
'anArray': new Set([
'Apple',
'Mango'
])
};
console.log(JSON.stringify(marshall(raw)));
// {"anArray":{"SS":["Apple","Mango"]}}
const marshalledResult = marshall(raw);
console.log(JSON.stringify(unmarshall(marshalledResult)));
// {"anArray":{}}
});
But I am not able to get the String Set back. How should we be doing this when we should get a String Set from dynamo db and use it?
Solution 1:[1]
unmarshall is the right approach. I believe you are not seeing the expected result because JSON.stringify does not play nicely with sets. Try logging the unmarshalled result directly:
const unmarshalled = unmarshall(marshalledResult)
console.log(unmarshalled);
// => { anArray: Set(2) { 'Apple', 'Mango' } }
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | fedonev |
