gpt4 book ai didi

go - UnmarshalMap 使用 aws-go-sdk

转载 作者:IT王子 更新时间:2023-10-29 02:32:19 25 4
gpt4 key购买 nike

// UserInfo 用来解构返回的数据
type UserInfo struct {
gender string `dynamo:"gender"`
product string `dynamo:"product"`
id string `dynamo:"id"`
createTime int `dynamo:"create_time"`
name string `dynamo:"name"`
}

// GetUserInfoByID 根据userId在supe_user表取回用户信息
func GetUserInfoByID(userId string) (UserInfo, error) {
queryInput := dynamodb.GetItemInput{
Key: map[string]*dynamodb.AttributeValue{
"userId": {
S: aws.String(userId),
},
},
TableName: aws.String("user"),
}
result, err := dbsession.DynamoDB.GetItem(&queryInput)
userInfo := UserInfo{}
if err != nil {
fmt.Println(err.Error())
return userInfo, err
}
unmarshalMapErr := dynamodbattribute.UnmarshalMap(result.Item, &userInfo)
if unmarshalMapErr != nil {
return userInfo, err
}
fmt.Println(result.Item)
fmt.Println(userInfo.name)
return userInfo, nil
}

为什么这不起作用?它没有抛出任何错误,只是不工作......我的猜测是我的 UserInfo 类型有问题,但无法找到正确的方法,请帮忙。

最佳答案

在 Go 中,如果名称以大写字母开头,则名称会被导出。您应该将字段的首字母大写以确保它们被导出,例如:

type UserInfo struct {
Gender string `dynamo:"gender"`
Product string `dynamo:"product"`
Id string `dynamo:"id"`
CreateTime int `dynamo:"create_time"`
Name string `dynamo:"name"`
}

更多信息:https://www.goinggo.net/2014/03/exportedunexported-identifiers-in-go.html

关于go - UnmarshalMap 使用 aws-go-sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com