如何使用关键变量使用jq获取json文件的二级值



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

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

在我的脚本中有两个变量:projectapp,因为当然有多个项目和应用程序。我需要使用这些变量值来获得版本值。在这个例子中,CCD_;example.com";并且CCD_ 4是"0";后端";

我试过这个

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

您可以这样使用它:

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

最新更新