0
我解析下面的JSON,它應該通過承諾返回消息[]。它是在英雄樣品項目中使用的HTTP文檔中JSON解析返回{對象,對象}
{
"data": [
{"id":"1","commid":"0","subject":"test1subject","body":"test1 body"},
{"id":"2","commid":"1","subject":"lkjhlkjh","body":"nbvjhg"}
]
}
據而不是返回與對象數據陣列相同的代碼。我怎樣才能讓它像在例子中那樣工作。它需要返回一個消息[]
return this.http.get('messages.json')
.toPromise()
.then(this.extractData)
.catch(this.handleError);
private extractData(res: Response) {
let body = res.json();
console.log(body);
return body.data || { };
}
這裏是在我的組件 出口類消息的代碼{ ID:號碼; commid:number; //這個消息所屬的社區ID爲 subject:string; body:string; } msgs:Message []; (this.msgService.getMessages()。)(messages => {this.msgs = messages;});
這裏是角文檔樣本: http://plnkr.co/edit/KZGeyULqrcuZDSeg0CkF?p=preview
你問什麼用的console.log打印()語句,還是關於承諾中返回的內容?你到底在期待什麼? –
看看angular2 doc示例,json解析通過承諾返回Hero [],我想要相同的行爲。我使用相同的代碼。 –
您的承諾確實會返回一個包含兩個對象的數組,這些對象包含一個id,commid等,就像在json中一樣。如果您需要查看這些對象的內容,請使用您的調試器,或使用'console.log(JSON.stringify(body.data))'。目前還不清楚你真正期望什麼,因爲你沒有顯示消息是什麼,也沒有顯示任何使用返回的承諾的代碼。 –