json - 使用环境变量生成字段并将它们插入到对象中
问题描述
我有下面的 JSON,我需要在 env 变量的特定位置添加键和值。此外,如果可能的话,会尽量避免在 JSON 中进行任何硬编码
示例 JSON:
{
"abc": {
"admin": {
"username": "admin",
"password": "pa55word",
"tenant_name": "t1"
},
"users": [
{
"username": "n1",
"password": "password",
"user_domain_name": "Default",
"project_name": "p1",
"project_domain_name": "Default"
},
{
"username": "n2",
"password": "password",
"user_domain_name": "Default",
"project_name": "p2",
"project_domain_name": "Default"
}
]
}
}
输出 json 需要如下所示,其中 in$AUTH
和$REG
是 env 变量。
{
"abc": {
"auth_url": "$AUTH",
"region_name": "$REG",
"endpoint_type": "PRIVATE",
"admin": {
"username": "admin",
"password": "pa55word",
"tenant_name": "t1"
},
"users": [
{
"username": "n1",
"password": "password",
"user_domain_name": "Default",
"project_name": "p1",
"project_domain_name": "Default"
},
{
"username": "n2",
"password": "password",
"user_domain_name": "Default",
"project_name": "p2",
"project_domain_name": "Default"
}
]
}
}
看着 jq 但它似乎令人困惑。使用jq如何实现这一点?
解决方案
从预设变量中获取AUTH
和REG
环境变量$ENV
并使用它们创建字段,然后将结果对象添加到输入的第一个成员。例如:
first(.[]) |= ( $ENV | {
auth_url: .AUTH,
region_name: .REG,
endpoint_type: "PRIVATE"
}
) + .
推荐阅读
- typescript - 我在表单中提交数据,但是方法不能被调用?
- javascript - 反应代码以显示细节不起作用
- kubernetes - 如何检查部署在 Kubernetes pod 中的服务的日志,其中 pod 处于驱逐状态
- laravel - 以 pdf 格式下载发票时遇到 404 错误
- rabbitmq - 在没有禁用 Spring Cloud Dataflow 和其他云服务的情况下在 PCF 中缩放 Spring Batch 应用程序
- python - 使用多进程方法时如何管理python进程
- python - 如何解决 pyFirmata 上的“float”和“NoneType”实例之间不支持的错误“<=”?
- c++ - 模板元编程:部分专业化的问题
- .net - 如何在 .NET 中获取 Windows 标题栏文本的颜色
- antd - Antd - 滚动页面时表格标题固定在顶部