[英]Unmarshall DynamoDB JSON
通过 DynamoDB NewImage
流事件给定一些DynamoDB JSON ,我如何将其解组为常规 JSON ?
{"updated_at":{"N":"146548182"},"uuid":{"S":"foo"},"status":{"S":"new"}}
通常我会使用AWS.DynamoDB.DocumentClient ,但是我似乎找不到通用的 Marshall/Unmarshall 函数。
旁注:将DynamoDB JSON解组为 JSON 并再次返回时,我会丢失任何内容吗?
您可以使用AWS.DynamoDB.Converter.unmarshall
函数。 调用以下将返回{ updated_at: 146548182, uuid: 'foo', status: 'new' }
:
AWS.DynamoDB.Converter.unmarshall({
"updated_at":{"N":"146548182"},
"uuid":{"S":"foo"},
"status":{"S":"new"}
})
可以在 DynamoDB 的编组 JSON 格式中建模的所有内容都可以安全地与 JS 对象相互转换。
AWS SDK为JavaScript第3版(V3)提供了很好的方法, 编组和反编组DynamoDB可靠的记录。
const { marshall, unmarshall } = require("@aws-sdk/util-dynamodb");
const dynamo_json = { "updated_at": { "N": "146548182" }, "uuid": { "S": "foo" }, "status": { "S": "new" } };
const to_regular_json = unmarshall(dynamo_json);
const back_to_dynamo_json = marshall(to_regular_json);
输出:
// dynamo_json
{
updated_at: { N: '146548182' },
uuid: { S: 'foo' },
status: { S: 'new' }
}
// to_regular_json
{ updated_at: 146548182, uuid: 'foo', status: 'new' }
// back_to_dynamo_json
{
updated_at: { N: '146548182' },
uuid: { S: 'foo' },
status: { S: 'new' }
}
另一种更容易实现的方法,您让 DynamoDB 处理幕后的转换。
将该字段注释为@DynamoAttribute
...
@DynamoDBAttribute
private MyObjectClass myObject;
并且,您使用@DynamoDBDocument 注释“MyObjectClass”
@DynamoDBDocument
public class MyObjectClass {
....
}
DynamoDB 会将“MyObjectClass myObject”转换和取消转换为您发布的 JSON 形状。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.