我正在使用jqplay播放格式。以某种方式从某种不同的格式,我能够到达以下格式。但是现在我想更改此格式,如下所示。基本上,我想合并两个ID相同的对象。
'输入'
[
{
"id": "7972",
"secondaryAddresses": {
"1-2G8AXE": {
"isDefaultBillingAddress": "true",
"isDefaultShippingAddress": "true",
}
}
}
]
[
{
"id": "7972",
"secondaryAddresses": {
"1-4BR2P6B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false",
}
}
}
]
[
{
"id": "6980",
"secondaryAddresses": {
"1-9BR289B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false",
}
}
}
]
[
{
"id": "6980",
"secondaryAddresses": {
"1-8B0989B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false",
}
}
}
]
输出
[
{
"id": "7972",
"secondaryAddresses": {
"1-2G8AXE": {
"isDefaultBillingAddress": "true",
"isDefaultShippingAddress": "true",
},
"1-4BR2P6B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false",
}
}
},
{
"id": "6980",
"secondaryAddresses": {
"1-9BR289B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false",
},
"1-8B0989B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false",
}
}
}
]
请帮助我。我正在使用某种模板将一个json转换为另一json格式。
固定示例输入后,进行以下调用
< sample.json jq -n '
[inputs[]]
| group_by(.id)
| map( reduce .[] as $x
(.[0]|{id};
.secondaryAddresses += ($x | .secondaryAddresses)))'
产生:
[
{
"id": "6980",
"secondaryAddresses": {
"1-9BR289B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false"
},
"1-8B0989B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false"
}
}
},
{
"id": "7972",
"secondaryAddresses": {
"1-2G8AXE": {
"isDefaultBillingAddress": "true",
"isDefaultShippingAddress": "true"
},
"1-4BR2P6B": {
"isDefaultBillingAddress": "false",
"isDefaultShippingAddress": "false"
}
}
}
]