我正在使用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格式。
答案 0 :(得分:1)
这是一个有效的解决方案,尽管它以帮助程序功能为代价,但它也很简单。由于此功能是通用的,因此可能值得将其添加到此类功能的库中。
<TouchableOpacity>
<Text style={{marginVertical: 20}} onPress={() => pickImage()}>Gallery</Text>
<Text style={{marginVertical: 20}}>Camera</Text>
<Text style={{marginVertical: 25}} onPress={() => editImage()}>Edit Image</Text>
</TouchableOpacity>
以下使用def aggregate_by(s; f; g):
reduce s as $x (null; .[$x|f] += [$x|g]);
,因此必须与jq的inputs
命令行选项结合使用:
-n
答案 1 :(得分:0)
固定示例输入后,进行以下调用
< 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"
}
}
}
]