为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JSON 解组为 dynamodb.AttributeValue?

如何将 JSON 解组为 dynamodb.AttributeValue?

Go
慕丝7291255 2022-05-23 17:52:24
例如,在输入时:[        {            "M": {                "Capacity": {                    "S": "7"                },                "Energy": {                    "S": "A+"                }            }        },        {            "M": {                "Capacity": {                    "S": "7"                },                "Energy": {                    "S": "A++"                }            }        },        {            "M": {                "Capacity": {                    "S": "7"                },                "Energy": {                    "S": "A+++"                }            }        }    ]而不是Capacity,Energy我可以获得其他密钥。我没有找到任何方法来准备dynamodb.AttributeValue适用于UpdateItem.我试图解组[]map[string]interface{},然后转换为dynamodb.AttributeValue.
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

unmarshal into []map[string]map[string]*dynamodb.AttributeValue{}thenCapacity和 Energykey 都 unmarshal as dynamodb.AttributeValue。


因此,您可以使用外部映射的类型值,map[string]*dynamodb.AttributeValue如ExpressionAttributeValuesUpdateItemInputUpdateItem


package main


import (

    "encoding/json"

    "fmt"


    "github.com/aws/aws-sdk-go/service/dynamodb"

)

func main() {

    data := []byte(`[

        {

            "M": {

                "Capacity": {

                    "S": "7"

                },

                "Energy": {

                    "S": "A+"

                }

            }

        },

        {

            "M": {

                "Capacity": {

                    "S": "7"

                },

                "Energy": {

                    "S": "A++"

                }

            }

        },

        {

            "M": {

                "Capacity": {

                    "S": "7"

                },

                "Energy": {

                    "S": "A+++"

                }

            }

        }

    ]`)


    d := []map[string]map[string]*dynamodb.AttributeValue{}

    json.Unmarshal(data, &d)

    for _, mp := range d {

        expressionAttributeValues := mp["M"]

        // you can use expressionAttributeValues as ExpressionAttributeValues in UpdateItemInput to UpdateItem

        capacity := expressionAttributeValues["Capacity"]

        energy := expressionAttributeValues["Energy"]

        fmt.Printf("%+v", capacity)

        fmt.Printf("%+v", energy)

    }

}


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号