从 http 请求在 Angular2 中做出响应保持 JSON
Making response in Angular2 from http request staying as JSON
我正在尝试使用 TypeScript 的 Angular2,但在尝试从我的 http 请求中获取响应时遇到问题。它是来自服务器的数组响应,我定义了一个应该映射到它的 class。代码如下。谁能发现问题?
this.http
.get(this.testUrl, {
data: JSON.stringify(mockData),
headers: this.headers
})
.map(response => response.json() as People[])
.subscribe(result => this.peopleList = result);
人员列表在 class 中定义为
peopleList: People[];
我的人 class 看起来像这样
export class Flight {
Name: string;
Age: number;
}
输出始终是数组中的数据,但只是 Json 数组。如果我将 Name 的 属性 更改为 DummyName,在 'converted' 变成 People[].
之后,它仍然显示数组中数据的相同输出
我应该看到 class 属性吗?我正在使用 Chrome 调试器来查询变量
编辑添加 console.log() 信息。它是一个大约 300 的数组。
[0 … 99]
0 : Object
Name : "Simon"
Age : 45
__proto__:Object
1:Object
Name:"Luke"
Age:21
__proto__:Object
调用 res.json()
时得到的结果只是一个普通对象 (POJO),而不是 class 实例。这意味着它们的类型将是 object
。事实上,你 "cast it" 手动不会改变对象不是 class People
.
实例的事实
您有两个选项来处理 POJOS:
- 通过界面定义它们(为此你应该改变 People
进入界面)
- 将 POJO 数组中的每个元素映射到 People 的实例中
class 通过使用构造方法
我正在尝试使用 TypeScript 的 Angular2,但在尝试从我的 http 请求中获取响应时遇到问题。它是来自服务器的数组响应,我定义了一个应该映射到它的 class。代码如下。谁能发现问题?
this.http
.get(this.testUrl, {
data: JSON.stringify(mockData),
headers: this.headers
})
.map(response => response.json() as People[])
.subscribe(result => this.peopleList = result);
人员列表在 class 中定义为
peopleList: People[];
我的人 class 看起来像这样
export class Flight {
Name: string;
Age: number;
}
输出始终是数组中的数据,但只是 Json 数组。如果我将 Name 的 属性 更改为 DummyName,在 'converted' 变成 People[].
之后,它仍然显示数组中数据的相同输出我应该看到 class 属性吗?我正在使用 Chrome 调试器来查询变量
编辑添加 console.log() 信息。它是一个大约 300 的数组。
[0 … 99]
0 : Object
Name : "Simon"
Age : 45
__proto__:Object
1:Object
Name:"Luke"
Age:21
__proto__:Object
调用 res.json()
时得到的结果只是一个普通对象 (POJO),而不是 class 实例。这意味着它们的类型将是 object
。事实上,你 "cast it" 手动不会改变对象不是 class People
.
您有两个选项来处理 POJOS:
- 通过界面定义它们(为此你应该改变 People 进入界面)
- 将 POJO 数组中的每个元素映射到 People 的实例中 class 通过使用构造方法