登录
首页 >  Golang >  Go问答

将 DynamoDB LastEvaluatedKey 转换为字符串序列化的方法

来源:stackoverflow

时间:2024-02-15 23:27:19 130浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《将 DynamoDB LastEvaluatedKey 转换为字符串序列化的方法》,涉及到,有需要的可以收藏一下

问题内容

需要将从查询输出返回的 lastevaluatedkey 传输为分页 api 调用的响应,以便用户可以使用 lastevaluatedkey 请求下一页。 是否可以使用 aws-sdk-go-v2 进行转换?

尝试使用 json 进行编组和解组,但没有成功

lek := map[string]types.AttributeValue{
    "num":  &types.AttributeValueMemberN{Value: "1"},
    "text": &types.AttributeValueMemberS{Value: "text"},
}
barray, err := json.Marshal(lek)
if err != nil {
  fmt.println(err)
}

lekDecoded := map[string]types.AttributeValue{}
err = json.Unmarshal(barray, &lekDecoded)
if err != nil {
 fmt.println(err)
}

这总是无法将其解码回map[string]types.attributevalue


正确答案


lastevaluatedkey 在响应中以纯文本形式提供。如果您想对其进行编码,例如可以使用 base64 进行编码。您可以选择任何类型的编码,只要在返回到下一个分页请求之前进行解码即可。

对 lek 进行编码

aws dynamodb scan \
--table-name test \
--limit 1 \
--query lastevaluatedkey | base64
ewogicagimlkijogewogicagicagicjtijogijr3og5pwnbptxk2cxoxbw50rke1dsikicagih0kfqo

解码编码的lek

echo ewogicagimlkijogewogicagicagicjtijogijr3og5pwnbptxk2cxoxbw50rke1dsikicagih0kfqo | base64 --decode
{
    "id": {
        "S": "4w8niZpiMy6qz1mntFA5u"
    }
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>