首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将反应js中的两个json响应合并

如何将反应js中的两个json响应合并
EN

Stack Overflow用户
提问于 2022-04-06 08:23:10
回答 2查看 194关注 0票数 -1

我有两个api json响应,如

代码语言:javascript
复制
"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"
      }
    }
  ]

另一个是

代码语言:javascript
复制
 "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覆盖,预期的结果如下所示:

代码语言:javascript
复制
"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"
      }
    },
    
  ]
EN

回答 2

Stack Overflow用户

发布于 2022-04-06 08:26:20

您可以通过将两个数组放在一起concat来生成所需的结果数组:

代码语言:javascript
复制
var result = {
  'aws': response1.aws.concat(response2.azure)
};
票数 1
EN

Stack Overflow用户

发布于 2022-05-23 11:59:17

尝尝这个

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71763380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档