为了账号安全,请及时绑定邮箱和手机立即绑定

如何将地图从 DynamoDB 解构到结构?

如何将地图从 DynamoDB 解构到结构?

Go
慕村225694 2022-08-01 17:01:14
发电机上有以下字段{      "config": {        "BASE_AUTH_URL_KEY": "https://auth.blab.bob.com",        "BASE_URL": "https://api.dummy.data.com",        "CONN_TIME_OUT_SECONDS": "300000",        "READ_TIME_OUT_SECONDS": "300000"      },      "id": "myConfig"    }and getting the element with dynamodbattribute    import(        "github.com/aws/aws-sdk-go/service/dynamodb"        "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute")    result, err := svc.GetItem(&dynamodb.GetItemInput{        TableName: aws.String(tableName),        Key: map[string]*dynamodb.AttributeValue{            "id": {                S: aws.String(configId),            },        },    })这个代码它的工作原理,但当我尝试检索对象时,它的呈现是这样的    map[config:{      M: {        BASE_AUTH_URL_KEY: {          S: "https://auth.blab.bob.com"        },        CONN_TIME_OUT_SECONDS: {          S: "300000"        },        READ_TIME_OUT_SECONDS: {          S: "300000"        },        BASE_URL: {          S: "https://api.dummy.data.com"        }      }    } id:{      S: "myConfig"    }]出于这个原因,当我试图取消我的对象时,未编组的对象返回为{}type Config struct {    id                  string    baseAuthUrlKey      string    baseUrl             string    connectTimeOutSecs  string    readTimeOutSecs     string}item := Config{}err = dynamodbattribute.UnmarshalMap(result.Item, &item)我如何将从GetItem返回的值分配给我的结构,这似乎是我的结构的映射?
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

问题的根源在于您的结构结构不正确。Config


我建议在将JSON转换为Go结构时使用json-to-go;此工具将帮助您将来捕获此类问题。


正确构造结构后,您还会注意到结构字段未大写,这意味着它们不会被导出(即能够被其他包使用),这是您的代码不会返回您期望的结果的另一个原因。UnmarshalMap


以下是有关结构字段可见性及其重要性的一个很好的答案,上面简要总结了一下。


下面是您的结构的更正版本,与您的代码相结合,将正确地允许您打印您的结构,而不会收到一个没有乐趣的。UnmarshalMapitem{}


type Item struct {

    Config struct {

        BaseAuthUrlKey     string `json:"BASE_AUTH_URL_KEY"`

        BaseUrl            string `json:"BASE_URL"`

        ConnTimeoutSeconds string `json:"CONN_TIME_OUT_SECONDS"`

        ReadTimeoutSeconds string `json:"READ_TIME_OUT_SECONDS"`

    } `json:"config"`

    ID string `json:"id"`

}


查看完整回答
反对 回复 2022-08-01
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信