这是我要通过jq解析的json:
{
"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:
答案 0 :(得分:0)
使用访问键值的基本形式,您应该编写:
jq -r '.["KEYNAME"]'
除了在Windows提示符下,您必须摆弄引号(或将过滤器放在文件中)。
在现代版本的jq中,基本形式可以缩写为."KEYNAME"
。
因此,假设您的jq为1.5或更高,则可以编写(避免使用cat
):
jq -r '."aaa-bbb-ccc"' myjson
有关更多详细信息,请参见jq FAQ。