You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DynamoDBEvent属性值转换为标准JSON格式?

解决方法

AWS 确实提供了现成的转换工具,不用硬编码或反射就能处理:

  • 使用 AWS Go SDK v2 里的 attributevalue.UnmarshalMap 方法(对应 SDK v1 的 dynamodbattribute.UnmarshalMap),它能自动识别 DynamoDB 属性的类型标识(S、N、BOOL 等),把带标识的结构转换成对应的 Go 原生类型(字符串、数字、布尔值等)。
  • 转换后再用标准库的 json.Marshal 就能得到符合预期的标准 JSON,示例代码如下:
import (
    "encoding/json"
    "github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue"
    "github.com/aws/aws-lambda-go/events"
)

func handleDynamoDBStream(event events.DynamoDBEvent) error {
    for _, record := range event.Records {
        // 把DynamoDB格式的NewImage转成Go原生map
        var targetItem map[string]interface{}
        if err := attributevalue.UnmarshalMap(record.Change.NewImage, &targetItem); err != nil {
            return err
        }
        // 生成标准JSON
        standardJSON, err := json.Marshal(targetItem)
        if err != nil {
            return err
        }
        // 这里可以处理生成好的标准JSON
    }
    return nil
}
  • 如果你的数据有固定结构,还可以直接定义对应的 Go 结构体,把 targetItem 换成结构体变量,序列化后的 JSON 会更贴合你的业务模型,类型匹配也更精准。

内容的提问来源于stack exchange,提问作者Woody1193

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:55:18