首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws-sdk-go unmarshal属性解组映射列表,而不是解组

aws-sdk-go unmarshal属性解组映射列表,而不是解组
EN

Stack Overflow用户
提问于 2018-04-20 17:55:54
回答 1查看 2.2K关注 0票数 2

我有一个Dynamodb表,它有以下结构:

代码语言:javascript
复制
type StatusItem struct {
    requestStatus string
    timestamp string
    RequestId string
}

我有这样的代码:

代码语言:javascript
复制
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是空的。

当我在条目中放置一个观察者时,我可以看到对结构的it解组,但是所有的值都是空的。

如果我这样做了:log.println(result.items),我可以看到那里的值(虽然有点难看)

代码语言:javascript
复制
%!(EXTRA string=)[map[timestamp:{
  S: "2018-04-18 12:04:43.761"
} RequestId:{
  S: "9"
} requestStatus:{
  S: "REQUEST_RECEIVED"
}]

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-20 19:56:21

感谢彼得为我指明了正确的方向。

解决方案很简单(虽然很愚蠢,但事实就是如此)。

如:https://til.hashrocket.com/posts/3512417fb0-private-vs-public-struct-members中所指出的

小写的起始成员是私有的,而Capital是公开的。

为了使它正常工作,我需要从以下位置更新我的结构:

代码语言:javascript
复制
type StatusItem struct {
    requestStatus string
    timestamp string
    RequestId string
}

至:

代码语言:javascript
复制
type StatusItem struct {
    RequestStatus string
    Timestamp string
    RequestId string
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49947298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档