jq在顶级密钥中存在逃避炒作的问题



这是我的json,我正试图用jq来解析:

{
"aaa-bbb-ccc": {
"derp": blah
}
}

获取错误此错误:

cat myjson | jq -r .'aaa-bbb-ccc' 
jq: error: aaa/0 is not defined at <top-level>, line 1:
.aaa-bbb-ccc    
jq: error: bbb/0 is not defined at <top-level>, line 1:
.aaa-bbb-ccc           
jq: error: ccc/0 is not defined at <top-level>, line 1:

使用访问键值的基本形式,您可以编写:

jq -r '.["KEYNAME"]'

除了在Windows提示下,你必须摆弄引号(或者把过滤器放在文件中(。

在现代版本的jq中,基本形式可以缩写为."KEYNAME"

因此,假设你的jq是1.5或更高,你可以写(避免cat(:

jq -r '."aaa-bbb-ccc"' myjson 

有关更多详细信息,请参阅jq常见问题解答。

最新更新