【问题标题】:How to use key variables to get a second level value of json file using jqjq如何使用key变量获取json文件的二级值
【发布时间】:2020-10-09 21:40:17
【问题描述】:

我需要在 bash 脚本 (busybox) 中使用 jq 从 json 文件中获取特定值。 json 文件如下所示:

{
  "example.com": {
    "backend": "1.3.7"
  }
}

在我的脚本中有两个变量:projectapp - 因为当然有多个项目和应用程序。我需要使用这些变量值来获取版本值。在此示例中,project 是“example.com”,app 是“后端”

我试过了

jq --arg p "$project" --arg a "$app" '.[$p].[$a]' file.json

但我确实得到了错误

jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.[$p].[$a]      
jq: 1 compile error

【问题讨论】:

    标签: bash shell jq


    【解决方案1】:

    你可以这样使用它:

    jq -r --arg p "$project" --arg a "$app" '.[$p][$a]' file.json
    

    否则:

    jq -r --arg p "$project" --arg a "$app" '.[$p] | .[$a]' file.json
    
    1.3.7
    

    【讨论】:

    • '.[$p][$a]'
    猜你喜欢
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多