如何将两个JSON对象组合成一个数组

时间:2018-01-16 17:23:35

标签: javascript angular typescript

我有两个JSON文件 - 一个与2015-16的英超联赛数据和2016-17的其他数据有关。每个文件中的JSON数据如下(仅提取):

{
  "name": "English Premier League 2015/16",
  "rounds": [
    {
      "name": "Matchday 1",
      "matches": [
       {
          "date": "2015-08-08",
           "team1": {
            "key": "manutd",
            "name": "Manchester United",
            "code": "MUN"
          },
          "team2": {
            "key": "tottenham",
            "name": "Tottenham Hotspur",
            "code": "TOT"
          },
          "score1": 1,
          "score2": 0
        },

等等...很多名字,在圆形数组中匹配如此。

2016-17的数据与上述类似:

{
  "name": "English Premier League 2016/17",
  "rounds": [
    {
      "name": "Matchday 1",
      "matches": [
        {
          "date": "2016-08-13",
          "team1": {
            "key": "hull",
            "name": "Hull City",
            "code": "HUL"
          },
          "team2": {
            "key": "leicester",
            "name": "Leicester City",
            "code": "LEI"
          },
          "score1": 2,
          "score2": 1
        },

等等...很多名字,在圆形数组中匹配如此。

这两个是在两个单独的json文件中。我正在Angular 2中开发一个应用程序,并使用数据服务来获取这些数据。那部分是成功的。但是我需要使用ngFor在表中创建行,为此我要求这些数据像数组一样可迭代。

我试图将这两个json对象转换为数组,但无法成功。

1我初始化了一个空数组并尝试为每个对象执行array.push。那不起作用

arr=[];
if(this.data1516!=null && this.data1516!=undefined) {arr.push(this.data1516);}
if(this.data1617!=null && this.data1617!=undefined) {arr.push(this.data1617);}

2我试过Object。分配 -

this.obj=Object.assign({},this.data1516,this.data1617);

然后尝试将对象转换为数组,即使这不起作用

我希望最终的json单个文件成为这两个对象的数组,如下所示:

[{obj1},{obj2}]

1 个答案:

答案 0 :(得分:1)

]

中有一个额外的arr.push

这应该有效:

arr=[];

if(this.data1516!=null && this.data1516!=undefined) {
    arr.push(this.data1516);
}

if(this.data1617!=null && this.data1617!=undefined) {
    arr.push(this.data1617);
}

OR更短版本(ES6)

arr = [ ...this.data1516 , ...this.data1617 ];