你好我試圖的JSON對象到一個打字原稿類以改變陣列。然而,每一次我嘗試將Json對象屬性分配給打字稿屬性時,該方法似乎都會崩潰。打字稿JSON對象轉換成打字原稿類
打字稿接口
export interface marker {
lat: number;
lng: number;
}
打字稿方法
public markers: marker[];
ngOnInit() {
this.mapService.GetPhotosById(this.id).subscribe(resultlisting => {
this.values = resultlisting;
console.log(this.values); //SHOW IN PICTURE
this.ChangetoMarkers(this.values);
}, error => this.errorMessage = error);
}
ChangetoMarkers(someArray: Observable<any[]>) {
for (let entry of someArray) {
let mark: marker;
mark.lat = Number(entry.latitude); //Attempt to convert to number
mark.lng = +entry.longitude; //2nd attempt to convert to number
this.markers.push(mark);
};
console.log(this.markers); //DOES NOT REACH THIS
}
地圖服務
GetPhotosById(id: string): Observable<any> {
return this.http
.post(this.config.apiEndpoint + "mapPhotos/" + id)
.map(this.extractJson).catch(this.handleErrors);
};
private extractJson(res: Response) {
let data = res.json();
return data;
}
private handleErrors(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.log(errMsg);
return Observable.throw(errMsg);
}
我研究這個問題,並試圖以應用整數投,但它似乎沒有不工作。任何建議都會很棒。
這些都不是「JSON對象」,但JavaScript對象。拋出任何異常? – zerkms
你想分配屬性沒有值的變量,寫'讓標記:標記= {}',而不是 –
沒有拋出異常出奇 – RyeGuy