登录
首页 >  Golang >  Go问答

如何访问Golang项目的JSON文件中的环境变量?

来源:stackoverflow

时间:2024-04-01 23:51:35 480浏览 收藏

本篇文章向大家介绍《如何访问Golang项目的JSON文件中的环境变量?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我的团队使用 golang 进行编码,我们将所有配置放在 conf.json 中,有趣的部分如下所示,以及另一个用于 json 验证的 config_schema.json 文件。

{
"host": "192.168.0.34",
"port": "5678",
"username": "test_user",
"password": "random_pass",
"dbname": "dummy"
}

我的问题是,我可以定义环境变量,例如 $user 和 $pass 并按如下方式使用它们,或者出于安全目的有适当的方法来实现此目的吗?

{
"host": "192.168.0.34",
"port": "5678",
"username": "$USER",
"password": "$PASS",
"dbName": "dummy"
}

解决方案


也许已经太晚了,因为这个问题已经有一岁了 但您可以使用 https://golang.org/pkg/os/#ExpandEnv 的组合 和https://golang.org/pkg/encoding/json/#Unmarshaler

为了使用 unmarshaler,您应该有一个与您的 json 相对应的 struct。那么您可以覆盖默认方法并仅替换您想要的字段。更简单的示例如下所示

result := os.ExpandEnv(jsonString)

实例:https://play.golang.org/p/78C2zyYP6vL

本篇关于《如何访问Golang项目的JSON文件中的环境变量?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>