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 关注
- 97 浏览
添加回答
举报
