用于 dynamodb 的 Golang 包,支持映射、列表和 JSON

fai*_*_kk 6 go amazon-dynamodb

我正在尝试在 dynamodb 中保存 JSON 对象,使用新添加的对 JSON 类型的支持(我的理解是 JSON 类型基本上是映射+列表),以便我可以查询和修改嵌套的 JSON 文档。

我找不到任何带有新添加的数据类型支持的 dynamodb golang 包。

请问对此有何建议?

Yas*_*ava 1

要将 JSON 放入 aws-dynamodb 中,我们首先需要迭代 JSON 结构的每个属性,然后按以下方式将其转换为 dynamodb.AttributeValue:

func (e *DB) saveToDynamodb(data map[string]interface{}){
    var vv=make(map[string]*dynamodb.AttributeValue)

    for k,v:=range data{
        x:=(v.(string))  //assert type as required
        xx:=&(x)
        vv[k]=&dynamodb.AttributeValue{S: xx,}
    }
    //s:=data["asset_id"].(string)
    params := &dynamodb.PutItemInput{
        Item: vv,
        TableName: aws.String("Asset_Data"), // Required
    }
    resp, err := e.dynamodb.PutItem(params)

    if err != nil {
        // Print the error, cast err to awserr.Error to get the Code and
        // Message from an error.
        fmt.Println(err.Error())
        return
    }

    // Pretty-print the response data.
    fmt.Println(resp)
}
Run Code Online (Sandbox Code Playgroud)