0
// 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
類型有問題,但無法找到正確的方法來做到這一點,請幫助。UnmarshalMap使用aws-go-sdk
這工作!但是不應該在這裏發佈一些警告或錯誤?我的意思是文檔沒有提到這件事...... – FrontMage
我不知道是否有任何方便的方法來選擇結構的值到另一個。 – FrontMage
@FrontMage成員需要將第一個字符大寫的原因是,如果第一個字符不是大寫形式,則其他程序包的Go庫不能訪問其他程序包的成員,方法,類型或值。你會看到在所有Go編組庫中看到相同的行爲。 –