如何在JQ中按不同级别的键收集值?

Fom*_*aut 2 json jq

假设我有一个这样的 JSON:

[
    {
        "a": 1,
        "l": [
            {"b": "z"},
            {"b": "x"}
        ]
    },
    {
        "a": 2,
        "l": [
            {"b": "c"}
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我想从所有嵌入的数组中收集数据并获取具有“a”和“b”值的所有对象的数组。对于上面的 JSON,结果应该是:

[
    {"a": 1, "b": "z"},
    {"a": 1, "b": "x"},
    {"a": 2, "b": "c"}
]
Run Code Online (Sandbox Code Playgroud)

我需要什么 JQ 表达式来尝试解决问题?

Bar*_*han 6

您可以.l[]在表达式中使用以返回响应中返回的数组的每个元素。所以,使用下面的这个

map({a} + .l[])
Run Code Online (Sandbox Code Playgroud)

Demo