从http请求在Angular2中作为JSON

时间:2017-06-28 14:21:36

标签: angular angular-http

我正在尝试使用TypeScript的Angular2,并且在尝试从我的http请求中获取响应时遇到问题。它是来自服务器的数组响应,我有一个定义的类,应该映射到它。代码如下。有谁能发现问题?

this.http
  .get(this.testUrl, {
    data: JSON.stringify(mockData),
    headers: this.headers
  })
  .map(response => response.json() as People[])
  .subscribe(result => this.peopleList = result);

人员列表在类中定义为

peopleList: People[];

My People类看起来像这样

export class Flight {
  Name: string;
  Age: number;
}

输出始终是数组中的数据,但只是Json数组。如果我将Name的属性更改为DummyName,它在转换后仍然会显示数组中数据的相同输出'进入人民[]。

我应该看到班级属性吗?我正在使用Chrome调试器来查询变量

编辑添加console.log()信息。它的阵列大约有300个。

[0 … 99]
0 : Object
Name : "Simon"
Age : 45
__proto__:Object

1:Object
Name:"Luke"
Age:21
__proto__:Object

1 个答案:

答案 0 :(得分:0)

调用res.json()时得到的结果只是一个普通对象(PO​​JO),而不是一个类实例。这意味着他们的类型将是object。事实上,你是这样做的。手动不会改变对象不是类People的实例的事实。

您有两种方法可以处理POJOS:

  • 通过界面定义它们(为此你应该改变人物 进入界面)
  • 将POJO数组中的每个元素映射到People的实例 class使用构造函数方法