代码之家  ›  专栏  ›  技术社区  ›  Bill

使用golang将输出字符串转换为map

go
  •  2
  • Bill  · 技术社区  · 6 年前

     {
       ARN: "arn:aws:secretsmanager:us-east-2:xxxx:secret:team_dev-Xhzkt6",
       CreatedDate: 2018-07-05 06:50:07 +0000 UTC,
       Name: "team_dev",
       SecretString: "{\"password\":\"test\"}",
       VersionId: "6b65bfe4-7908-474b-9ae6-xxxx",
       VersionStages: ["AWSCURRENT"]
     }
    

    尝试使用键获取值作为映射 SecretString

    d.Set("secret_string", output.SecretString)
    

    Schema TypeMap 是吗?

    jq

    output (GetSecretValueOutput) 定义为 type:"structure"

    type GetSecretValueOutput struct {
            _ struct{} `type:"structure"`
    

    package main
    
    import (
        "fmt"
        "encoding/json"
    )
    
    func main() {
        secretString := "{\"password\":\"test\"}"
    
        sec := map[string]interface{}{}
        if err := json.Unmarshal([]byte(secretString), &sec); err != nil {
            panic(err)
        }
        fmt.Println(sec)
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Bill    6 年前

    谢谢,请回答这个问题,这样我可以投票并接受它。

    -       d.Set("secret_string", output.SecretString)
    +       var sec map[string]interface{}
    +       if err = json.Unmarshal([]byte(*output.SecretString), &sec); err != nil {
    +               return err
    +       }
    +       d.Set("secret_string", sec)