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
)
这里的要点是:
|=可用于更新;
任意流;条件检查流中任何项的条件是否为真
天才谢谢