【发布时间】:2018-07-30 16:07:59
【问题描述】:
有人可以解释为什么我的 JSON 对象没有被正确解析为 Angular 对象吗? (当我显示 HTML 时,Angular 对象的值为空)
对 JSON 的 Angular 代码生成请求
GetMessageSub(): void {
this.http.get('http://localhost:61460/api/values')
.pipe(map(res => JSON.parse(res.toString())),
catchError(this.handleError('getMessageSub()', [])))
.subscribe(people => this.people = people);
}
使用 JSON 回复的 C# 代码
public JsonResult Get()
{
return Json("[{ id:1, name:\"value2\" }]");
}
声明 People 对象的 Angular 代码
export class People {
id: number;
name: string;
}
调用 people 对象的 HTML(由 GetMessageSub() 填充
people found: {{people.id}} -- {{people.name}}
【问题讨论】:
-
JSON 代表 JavaScript Object Notation,所以它已经是一个对象。不需要转换它
-
@SandipNirmal 不完全是。 JSON 是字符串的一种格式。某些东西必须对其进行解析才能将其放入对象中。在大多数情况下,Angular 会自动执行此操作,但这并不是因为 JSON 是一个对象。