在Golang中解析dynamodb.GetItemOutput类型

时间:2017-10-14 19:12:26

标签: go amazon-dynamodb aws-sdk

所以基本上我是golang的新手,需要解析dynamodb.GetItemOutput类型的输出。这是一个示例:

{
    Item: {
      share: {
        L: [{
        S: "Hello"
          },{
        S: "Brave"
          }]
      },
      userid: {
        S: "43"
      },
      amount: {
        S: "1000"
      },
      library: {
        L: [{
        S: "Demons"
          },{
        S: "HUMBLE"
          }]
      }
    }
}

任何帮助都会很精彩。 非常感谢。

1 个答案:

答案 0 :(得分:1)

我建议使用ODM(对象文档映射器)进行Go

我们使用了以下内容并推荐它。

https://github.com/guregu/dynamo

您可以使用常规json对象,ODM会将其转换为dynamodb表单并自动管理映射。

    db := dynamo.New(session.New(), &aws.Config{Region: aws.String("us-west-2")})
    table := db.Table("Widgets")

    // put item
    w := widget{UserID: 613, Time: time.Now(), Msg: "hello"}
    err := table.Put(w).Run() 

    // get the same item 
    var result widget
    err = table.Get("UserID", w.UserID).
        Range("Time", dynamo.Equal, w.Time).
        Filter("'Count' = ? AND $ = ?", w.Count, "Message", w.Msg). // placeholders in expressions
        One(&result)

    // get all items
    var results []widget
    err = table.Scan().All(&results)

在上面的示例中,代码只处理javascript对象,映射到dynamodb会自动处理。

希望它有所帮助。