go - 使用golang将输出字符串转换为映射
问题描述
获取输出为
{
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
,我可以很容易地得到它,但不知道如何在 golang 中做到这一点。
更新
谢谢,@mkopriva
在 aws sdk (github.com/aws/aws-sdk-go/service/secretsmanager/api.go) 中,output (GetSecretValueOutput)
定义为type:"structure"
type GetSecretValueOutput struct {
_ struct{} `type:"structure"`
再次感谢提供测试代码,我会试试的。
package main
import (
"encoding/json"
"fmt"
)
func main() {
secretString := "{\"password\":\"test\"}"
sec := map[string]interface{}{}
if err := json.Unmarshal([]byte(secretString), &sec); err != nil {
panic(err)
}
fmt.Println(sec)
}
解决方案
@mkopriva
谢谢,请回答这个问题,以便我投票并接受。
使用您的示例代码,我确实解决了这个问题。
- 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)
推荐阅读
- serverless-framework - 无服务器 - 对多个功能使用相同的端点
- ios - React Native DateTimepicker 适用于 Android 但不适用于 IOS
- jmeter - jmeter cli工具可以记录测试脚本吗?
- javascript - 单击发送按钮错误 500 时添加更多接收电子邮件
- python - 如何调用嵌套循环中的值?
- php - 如何将我的 Laravel 项目 [views] 文件连接到使用 Jetstream 创建的 Route Auto?
- reactjs - 为什么在 MUI 中忽略自定义调色板?
- python - 关于深度学习中的tqdm
- javascript - 对 jupyterlab 源代码的更改没有得到反映
- python - “int”没有属性“get”