Arrays JQJSON根据条件从内部数组中检索值,并将其添加到数组外部

Arrays JQJSON根据条件从内部数组中检索值,并将其添加到数组外部,arrays,maps,jq,flatten,Arrays,Maps,Jq,Flatten,我的意见 { "data": { "assets": [{ "aDASD": "1056bda9-2598-4fdf-bd99-db3924464a75", "KEY": "a7e2ef79-41aa-4a36-9ca1-1f388917eb12.ahnl", "key2": "store-order-picking-units-api", "key3": "1.0.1", "tags": [{

我的意见

{
"data": {
    "assets": [{
        "aDASD": "1056bda9-2598-4fdf-bd99-db3924464a75",
        "KEY": "a7e2ef79-41aa-4a36-9ca1-1f388917eb12.ahnl",
        "key2": "store-order-picking-units-api",
        "key3": "1.0.1",
        "tags": [{
                "value": "abcd",
                "key": null,
                "mutable": false
            },
            {
                "value": "rest",
                "key": null,
                "mutable": false
            },
            {
                "value": "123",
                "key": null,
                "mutable": false
            }, {
                "value": "system",
                "key": null,
                "mutable": true
            },
            {
                "value": "market",
                "key": null,
                "mutable": true
            }
        ],
        "type": "mytype"
    }]
}
}

我想有如下输出

{
"data": {
    "assets": [{
        "aDASD": "1056bda9-2598-4fdf-bd99-db3924464a75",
        "KEY": "a7e2ef79-41aa-4a36-9ca1-1f388917eb12.ahnl",
        "key2": "store-order-picking-units-api",
        "key3": "1.0.1",
        "tags": [{
                "value": "abcd",
                "key": null,
                "mutable": false
            },
            {
                "value": "rest",
                "key": null,
                "mutable": false
            },
            {
                "value": "123",
                "key": null,
                "mutable": false
            }, {
                "value": "system",
                "key": null,
                "mutable": true
            },
            {
                "value": "market",
                "key": null,
                "mutable": true
            }
        ],
        "type": "mytype",
        "newkey1": "system",
        "newkey2": "market"
    }]
}
}

响应包含newkey1和newkey2。现在是棘手的部分。填充newkey1时,值可以是系统流程等,而对于newkey2,值可以是市场、财务等

换句话说,如果.data.assets[].tags[]中的任何一个值是系统或流程等,则应填充newkey1。同样,只有在市场、财务等情况下,才填充newkey2


使用jq是复杂的还是首先可以实现的?请帮助。

jq已完成图灵,因此您很幸运:-

您的需求还不完全清楚,但以下内容产生了您期望的输出,应该会让您走上正轨:

.data.assets |= map(
    .newkey1 = if any(.tags[].value; . == "system") then "system" else null end
  | .newkey2 = if any(.tags[].value; . == "market") then "market" else null end 
)
这里的要点是:

|=可用于更新; 任意流;条件检查流中任何项的条件是否为真
天才谢谢