角度为2的类/接口模型,声明一个对象数组

时间:2018-06-06 16:39:28

标签: angular

我需要帮助了解如何为我正在使用的数据正确创建模型类。当它只是一个对象数组时,我知道该怎么做:

export class Education {
    complete: boolean;
    course: string;
}

表示json数据:

{
  "educationData": [
    {
      "codeschool": [
        {
          "complete": "true",
          "course":"Front end foundations"
        },
        {
          "complete": "false",
          "course": "Front end formations"
        }
      ]
}

但是假设我正在从另一所学校上课,我有以下json数据。我现在在educationData中有两个对象数组:

{
  "educationData": [
    {
      "codeschool": [
        {
          "complete": "true",
          "course":"Front end foundations"
        },
        {
          "complete": "false",
          "course": "Front end formations"
        }
      ],
      "egghead": [
        {
          "complete": "true",
          "course": "Getting started with angular"
        },
        {
          "complete": "true",
          "course": "Learn HTTP in angular"
        }
      ]
    }
  ]
}

我是否会让班级模型与

相同
export class Education {
    complete: boolean;
    course: string;
}

或者我现在需要声明codeschool和egghead数组吗?如果这是正确的方法,那么我知道我的语法是完全错误的,因为我还没有找到关于这种情况的大量信息:

export class Education {
  codeschool: Array<Objects>;
    {
      complete: boolean;
      course: string;
    },
  egghead: Array<Objects>;
    {
      complete: boolean;
      course: string;
    }
}

1 个答案:

答案 0 :(得分:2)

鉴于您提供的JSON数据,我很可能会这样做:

class Education {
    [key: string]: { complete: boolean, course: string }[]
}

[key: string]部分说你会获得密钥,你不知道它们究竟是什么,但你知道它们会成为字符串(key没有特殊含义,但为了清楚起见,我喜欢将其命名。在看到这个之后,我很可能将这些对象移动到他们自己的类中,所以像这样:

class Education {
    [key: string]: EducationData[]
}

class EducationData {
    complete: boolean;
    course: string;
}