如何使用 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: [.]}))
给定输入形式
[
{"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: [.]}))