我的程序返回JSON
到stdout
它是一个带有operations
字段的对象,其中包含一个操作列表。每个操作包含字段,包括id
字段,例如:
{
"operations": [
{
"id": "694ef895-793f4631-41103e8-8ab59e66",
我正在尝试从中获取 id 列表jq
。
如果我在写
jq '.operations | .[] | .id'
它有效,如果我正在写作
jq '.operations | .[].id'
它也有效。
即并列与|
此处相同。
但如果我写
jq '.operations.[].id'
它失败并显示消息
jq:错误:语法错误,意外'[',期待 FORMAT 或 QQSTRING_START(Unix shell 引用问题?),第 1 行:.operations.[].id jq: 1 编译错误
为什么以及如何解决?
只要您只比较
.foo.bar
and|
,就没有区别,正如手册页在“基本过滤器”下所说:是的,你需要
.operations[].id
在你的情况下。