如何使用 JQ 转换此 JSON 数据以将每个嵌套数组元素依次提取到顶层?

How do I transform this JSON data using JQ to extract each nested array element to the top level in turn?

给定输入形式

[
    {"a": 1, "b": [{"c": 1}, {"c": 2}]}, 
    {"a": 2, "b": [{"c": 4}, {"c": 5}]}
]

我正在尝试转换为:

[
    {"a": 1, "b": [{"c": 1}],
    {"a": 1, "b": [{"c": 2}],
    {"a": 2, "b": [{"c": 3}],
    {"a": 2, "b": [{"c": 4}]
]

我有 [map(.b) ] | flatten,但是似乎无法使用父上下文进行任何进一步的操作。我真的被困住了,非常感谢任何帮助。

谢谢

您可以试试这个过滤器:

jq 'map({a,"b":.b[]|[.]})' file

它用 c 的每个值分别更新 b 的内容。

这是一个简单的解决方案,除了 "b" 之外没有提及任何键:

map(. + (.b[] | {b: [.]}))