如何在JQ中按不同级别的键收集值?
假设我有一个这样的 JSON:
[
{
"a": 1,
"l": [
{"b": "z"},
{"b": "x"}
]
},
{
"a": 2,
"l": [
{"b": "c"}
]
}
]
我想从所有嵌入的数组中收集数据并获取具有“a”和“b”值的所有对象的数组。对于上面的 JSON,结果应该是:
[
{"a": 1, "b": "z"},
{"a": 1, "b": "x"},
{"a": 2, "b": "c"}
]
我需要什么 JQ 表达式来尝试解决问题?
回答
您可以.l[]在表达式中使用以返回响应中返回的数组的每个元素。所以,使用下面的这个
map({a} + .l[])
Demo