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
タイプで何かが間違っていますが、これを行う正しい方法を理解できません、助けてください。aws-go-sdkを使用したアンマーシャリングマップ
あなたはまず、彼らは同様に、エクスポートしていることを確認するために大文字フィールドの文字を作る必要があります!しかし、いくつかの警告やエラーはここに投稿してはいけませんか?私はドキュメントがこれについて何も言わなかったことを意味します.... – FrontMage
構造体の値を別のものに取り出す便利な方法があるのだろうかと思います。 – FrontMage
@FrontMage最初の文字が大文字である必要がある理由は、最初の文字が大文字でない場合、別のパッケージのGoライブラリが別のパッケージのメンバ、メソッド、型、または値にアクセスできないことです。すべてのGoマーシャリングライブラリで同じ動作が表示されます。 –