亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 DynamoDBAttributeValues 解組為具有不同屬性的結構

將 DynamoDBAttributeValues 解組為具有不同屬性的結構

Go
絕地無雙 2022-05-23 17:40:42
我從 dynamodb 讀取了一些數據。這就是我得到的{  Item: {    rating: {      N: "6"    },    pk: {      S: "artist-1"    },    gender: {      S: "woman"    },    sk: {      S: "Alexandra A"    }  }}現在我有一個看起來像這樣的結構:type Artist struct {    ArtistID string  `json:"id"`    Gender   string  `json:"gender"`    Name     string  `json:"name"`    Rating   float64 `json:"rating"`}現在我做artist := model.Artist{}err = dynamodbattribute.UnmarshalMap(result.Item, &artist)現在我可以使用artist.gender. 所以這很好,但我不能為 ArtistId 這樣做,因為它在我的 dynamodb 中被稱為 pk 并且我使用 'id' 作為我的結構。什么是解決這個問題的干凈方法?我不想在結構中用 'pk' 替換我的 'id'。
查看完整描述

1 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

UnmarshalMap()不支持任何給定的標簽 Unmarshal。如果您不想在結構中使用 'pk' 更改 'id',則必須在 map 之前手動設置pkinid鍵的值。UnmarshalMap


func UnmarshalMap(m map[string]*dynamodb.AttributeValue, out interface{}) error {

    m["id"] = m["pk"]

    dynamodbattribute.UnmarshalMap(m, out)

}

最好為這種特殊情況調整創建一個自己的通用 Unmarshal 函數,然后UnmarshalMap()在內部調用。


artist := model.Artist{}

err = UnmarshalMap(result.Item, &artist)


查看完整回答
反對 回復 2022-05-23
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號