aws-sdk-go dynamodbattribute 未解组的地图解组列表
aws-sdk-go dynamodbattribute unmarshal list of maps not unmarshalling
我有一个具有以下结构的 Dynamodb Table:
type StatusItem struct {
requestStatus string
timestamp string
RequestId string
}
我有这样的代码:
items := []StatusItem{}
err = dynamodbattribute.UnmarshalListOfMaps(result.Items, &items)
if err != nil {
exitWithError(fmt.Errorf("failed to unmarshal Query result items, %v", err))
}
// Print out the items returned
for i, item := range items {
fmt.Println(i)
fmt.Printf(item.RequestId, item.requestStatus)
}
然而,items
是空的。
当我在项目中放置观察者时,我可以看到它解组到结构,但所有值都是空的。
如果我这样做:
log.println(result.items)
我可以看到那里的值(虽然有点难看)
%!(EXTRA string=)[map[timestamp:{
S: "2018-04-18 12:04:43.761"
} RequestId:{
S: "9"
} requestStatus:{
S: "REQUEST_RECEIVED"
}]
我做错了什么?
感谢@Peter 为我指明了正确的方向。
解决方案很简单(尽管情况很愚蠢)。
如中所述:https://til.hashrocket.com/posts/3512417fb0-private-vs-public-struct-members
小写起始成员是私有的,资本是 public。
为了让它正常工作,我需要更新我的结构:
type StatusItem struct {
requestStatus string
timestamp string
RequestId string
}
至:
type StatusItem struct {
RequestStatus string
Timestamp string
RequestId string
}
我有一个具有以下结构的 Dynamodb Table:
type StatusItem struct {
requestStatus string
timestamp string
RequestId string
}
我有这样的代码:
items := []StatusItem{}
err = dynamodbattribute.UnmarshalListOfMaps(result.Items, &items)
if err != nil {
exitWithError(fmt.Errorf("failed to unmarshal Query result items, %v", err))
}
// Print out the items returned
for i, item := range items {
fmt.Println(i)
fmt.Printf(item.RequestId, item.requestStatus)
}
然而,items
是空的。
当我在项目中放置观察者时,我可以看到它解组到结构,但所有值都是空的。
如果我这样做:
log.println(result.items)
我可以看到那里的值(虽然有点难看)
%!(EXTRA string=)[map[timestamp:{
S: "2018-04-18 12:04:43.761"
} RequestId:{
S: "9"
} requestStatus:{
S: "REQUEST_RECEIVED"
}]
我做错了什么?
感谢@Peter 为我指明了正确的方向。
解决方案很简单(尽管情况很愚蠢)。
如中所述:https://til.hashrocket.com/posts/3512417fb0-private-vs-public-struct-members
小写起始成员是私有的,资本是 public。
为了让它正常工作,我需要更新我的结构:
type StatusItem struct {
requestStatus string
timestamp string
RequestId string
}
至:
type StatusItem struct {
RequestStatus string
Timestamp string
RequestId string
}