json - 将参数传递给 jq 过滤器

这是我的 config.json:

{
    "env": "dev",
    "dev": {
        "projects" : {
            "prj1": {
                "dependencies": {},
                "description": ""
            }
        }
    }
}

这是我的 bash 命令:

PRJNAME='prj1'

echo $PRJNAME

jq --arg v "$PRJNAME" '.dev.projects."$v"' config.json 
jq '.dev.projects.prj1' config.json 

输出:

prj1
null
{
  "dependencies": {},
  "description": ""
}

所以$PRJNAME是prj1,但是第一次调用只输出null

有人可以帮我吗?

最佳答案

您的示例中的 jq 程序 .dev.projects."$v" 将尝试查找名为 "$v" 的键。请尝试以下方法:

jq --arg v "$PRJNAME" '.dev.projects[$v]' config.json 

https://stackoverflow.com/questions/34745451/

相关文章:

java - 对 kotlin 数据类使用 Jackson @JsonProperty 注释

json - Swift 4 JSON Decodable 解码类型更改的最简单方法

java - 将 Gson 与接口(interface)类型一起使用

javascript - 通过 JSON 发送 64 位值的公认方式是什么?

javascript - 通过 Angular 资源服务读取 JSON

c# - ASP.NET web api 无法获取 application/x-www-form-u

ruby-on-rails - rails : Restrict API requests to J

java - 如何使用 Jackson 定义可选的 json 字段

java - 为什么 Json 测试程序不起作用?

json - 处理 HTTP 请求正文中的可选 JSON 字段