1 回答

TA貢獻1825條經驗 獲得超4個贊
好吧,我想通了一些東西。
type GetDomainObjectsResponse struct {
Items []MyDomainObject `json:"items"`
NextToken string `json:"next_token"`
}
func GetDomainObjects(w http.ResponseWriter, req *http.Request) {
// ... parse query params, set up dynamoIn ...
eskMap := map[string]string{}
json.Unmarshal(params.NextToken, &eskMap)
esk, _ = dynamodbattribute.MarshalMap(eskMap)
dynamoIn.ExclusiveStartKey = esk
dynamoOut, _ := db.Query(dynamoIn)
response := GetDomainObjectsResponse{}
dynamodbattribute.UnmarshalListOfMaps(dynamoOut.Items, &response.Items)
lek := map[string]string{}
dynamodbattribute.UnmarshalMap(dynamoOut.LastEvaluatedKey, &lek)
response.NextToken := json.Marshal(lek)
// ... marshal and write the response ...
}
(再次這是我真正的解決方案匆忙轉回玩具問題,所以請原諒任何拼寫錯誤)
正如@buraksurdar指出的那樣,采取.事實證明,除了具體類型之外,您還可以傳入 ,它就可以正常工作。attributevalue.Unmarshalinteface{}map[string]string
我相信如果這不是平坦的,這將不起作用,所以這不是一個通用的解決方案[需要引用]。但我的理解是,從調用返回的總是平坦的,所以它適用于這個用例。AttributeValueLastEvaluatedKeyQuery
- 1 回答
- 0 關注
- 80 瀏覽
添加回答
舉報