我的程序返回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 编译错误
为什么以及如何解决?
答案1
只要您只比较.foo.bar
和|
,就没有区别,正如手册页“基本过滤器”下所述:
形式的过滤器
.foo.bar
相当于.foo|.bar
.
是的,你.operations[].id
的情况需要。