jq Filter:提取父值+数组唯一值

jq Filter: extracting parent values + unique values of array

这是一个 JSON 示例:

[
  {
    "AAA": "111",
    "images": [
      {
        "BBB": "some_value1"
      },
      {
        "BBB": "some_value2"
      },
      {
        "BBB": "some_value3"
      }
    ]
  },
  {
    "AAA": "222",
    "images": [
      {
        "BBB": "some_value4"
      },
      {
        "BBB": "some_value5"
      },
      {
        "BBB": "some_value6"
      }
    ]
  }
]

以下过滤器几乎可以解决所需的任务:

cat EXAMPLE.json | jq -r ".[] | [.AAA, .images[].BBB] | @csv"

不过,它只给出了这样的结果:

"111","some_value1","some_value2","some_value3"
"222","some_value4","some_value5","some_value6"

问题是:如何更改我的 jq 过滤器以接收以下结果:

"111","some_value1"
"111","some_value2"
"111","some_value3"
"222","some_value4"
"222","some_value5"
"222","some_value6"

感谢任何帮助。

你可以这样做:

$ jq -r '.[] | [.AAA] + (.images[] | [.BBB]) | @csv' EXAMPLE.json

fkrents 初始尝试的轻微修改:

.[] | [.AAA, .images[].BBB] | @csv

导致此解决方案:

.[] | .AAA as $a | .images[].BBB | [$a, .] | @csv