这是我的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常见问题解答。