我意识到新的更新不需要将响应转换为JSON。
我要关注的教程将其放入api.service.ts
export class ApiService {
constructor(private http: HttpClient){}
messages = []
getMessage(){
this.http.get('http://localhost:3000/newroute').subscribe(res =>{
this.messages = res.json()
})
}
}
但是,对于新的更新,“ res.json()”不起作用。我收到以下错误:类型'Object'不存在属性'json'。
我该如何解决?
这是我要遍历的数据:
var posts = [
{message:'Hello World'},
{greeting:'Whats going on'}
]
答案 0 :(得分:0)
Angular允许您执行type checking on the response。您不必手动解析JSON。
以下是您示例中的代码段(我建议使用类型):
messages: Message[] = []
getMessage() {
this.http.get<Message[]>('http://localhost:3000/newroute').subscribe((res: Message[]) => {
this.messages = res;
});
}
(更新)
根据您提供的数据,Message的界面可能如下所示:
export interface Message {
[s: string]: string;
}
但是,如果“消息”只能具有诸如“消息”和“问候”之类的特定键,那么您也可以将其中任何一个添加为可选属性。
export interface Message {
message?: string;
greeting?: string;
}
答案 1 :(得分:0)
HttpClient仅为您提供json对象,因此无需再次执行.json()。因此请执行以下代码为您工作
getMessage(){
this.http.get('http://localhost:3000/newroute').subscribe(res =>{
let messages: any = res;
this.messages = messages;
})
}
答案 2 :(得分:-1)
只需:
getMessage(){
this.http.get('http://localhost:3000/newroute').subscribe(res =>{
this.messages = res;
})
}