こんにちは、JSONオブジェクトの配列をTypeScriptクラスに変更しようとしています。しかし、このメソッドはJsonオブジェクト属性をtypescript属性に代入しようとするたびにクラッシュするようです。私はこの問題を調査しているとintergerキャストを適用することを試みてきたが、それはしていないようですJSONオブジェクトをTypescriptクラスに変換するTypescript
活字体インターフェース
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
値を持たない変数にプロパティを代入しようとすると、代わりに 'let mark:marker = {}'と書いてください –
驚くべき例外はありません – RyeGuy