我有两个api json响应,如
"aws": [
{
"id": "i-0b3db6cb7bebde704",
"cloudProvider": "aws",
"type": "t2.micro",
"placement": {
"region": "ap-southeast-1",
"availabilityZone": "ap-southeast-1a"
},
"os": {
"ImageId": "ami-0801a1e12f4a9ccc0",
"platform": "Linux/UNIX",
"name": "amzn2-ami-kernel-5.10-hvm-2.0.20220316.0-x86_64-gp2",
"description": "Amazon Linux 2 Kernel 5.10 AMI 2.0.20220316.0 x86_64 HVM gp2",
"hypervisor": "xen",
"architecture": "x86_64"
}
}
]另一个是
"azure": [
{
"id": "crawler-rnd",
"cloudProvider": "azure",
"name": "crawler-rnd",
"type": "Standard_E4s_v3",
"placement": {
"region": "centralus",
"resourceGroup": "CRAWLER-RND"
},
"os": {
"platform": "MicrosoftWindowsDesktop",
"name": "Windows-10"
}
}
]我在用反应,Redux。我试图合并两个Json对象,两个响应都有相同的属性名,我尝试了几种方法,如several,Object.assign(),但是在这种情况下,第一个被第二个Json覆盖,预期的结果如下所示:
"aws": [
{
"id": "i-0b3db6cb7bebde704",
"cloudProvider": "aws",
"type": "t2.micro",
"placement": {
"region": "ap-southeast-1",
"availabilityZone": "ap-southeast-1a"
},
"os": {
"ImageId": "ami-0801a1e12f4a9ccc0",
"platform": "Linux/UNIX",
"name": "amzn2-ami-kernel-5.10-hvm-2.0.20220316.0-x86_64-gp2",
"description": "Amazon Linux 2 Kernel 5.10 AMI 2.0.20220316.0 x86_64 HVM gp2",
"hypervisor": "xen",
"architecture": "x86_64"
}
},
{
"id": "crawler-rnd",
"cloudProvider": "azure",
"name": "crawler-rnd",
"type": "Standard_E4s_v3",
"placement": {
"region": "centralus",
"resourceGroup": "CRAWLER-RND"
},
"os": {
"platform": "MicrosoftWindowsDesktop",
"name": "Windows-10"
}
},
]发布于 2022-04-06 08:26:20
您可以通过将两个数组放在一起concat来生成所需的结果数组:
var result = {
'aws': response1.aws.concat(response2.azure)
};发布于 2022-05-23 11:59:17
尝尝这个
let response1 = {
"aws": [
{
"id": "i-0b3db6cb7bebde704",
"cloudProvider": "aws",
"type": "t2.micro",
"placement": {
"region": "ap-southeast-1",
"availabilityZone": "ap-southeast-1a"
},
"os": {
"ImageId": "ami-0801a1e12f4a9ccc0",
"platform": "Linux/UNIX",
"name": "amzn2-ami-kernel-5.10-hvm-2.0.20220316.0-x86_64-gp2",
"description": "Amazon Linux 2 Kernel 5.10 AMI 2.0.20220316.0 x86_64 HVM gp2",
"hypervisor": "xen",
"architecture": "x86_64"
}
}
]
};
let response2 = {
"azure": [
{
"id": "crawler-rnd",
"cloudProvider": "azure",
"name": "crawler-rnd",
"type": "Standard_E4s_v3",
"placement": {
"region": "centralus",
"resourceGroup": "CRAWLER-RND"
},
"os": {
"platform": "MicrosoftWindowsDesktop",
"name": "Windows-10"
}
}
]
};
let structuredResult = {
'aws': [ ...response1?.aws, ...response2?.azure ]
};
console.log(structuredResult)
https://stackoverflow.com/questions/71763380
复制相似问题