我得到以下错误:cannot use dynamodbattribute.UnmarshalMap(result.Item, &item) (type error) as type Item in assignment
当我尝试使用UnmarshalMap
方法分配我的结构
我从DynamoDB表中获得项目
result, err := svc.GetItem(&dynamodb.GetItemInput{
TableName: aws.String(tableName),
Key: map[string]*dynamodb.AttributeValue{
"ForumName": {
S: aws.String(forumName),
},
},
})
得到以下JSON响应体
{
"Item":{
"Threads":{
"N":"30"
},
"Category":{
"S":"Amazon Web Services"
},
"Messages":{
"N":"11"
},
"Views":{
"N":"99"
},
"ForumName":{
"S":"AWS Step Functions"
}
}
}
现在当我尝试给struct
赋值时type Item struct {
ForumName string `dynamodbav:"ForumName,stringset"`
Category string `dynamodbav:"Category,stringset"`
Messages int `dynamodbav:"Messages,numberset"`
Threads int `dynamodbav:"Threads,numberset"`
Views int `dynamodbav:"Views,numberset"`
}
var item Item
item = dynamodbattribute.UnmarshalMap(result.Item, &item)
我在这里得到错误item = dynamodbattribute.UnmarshalMap(result.Item, &item)
我也试着设置我的结构像这样
type Item struct {
ForumName string
Category string
Messages int
Threads int
Views int
}
尝试Cerise Limón所说的,正确地管理错误,因为您将error
类型来自dynamodbattribute.UnmarshalMap
在预定义的项目类型变量中。所以它不会编译。