【发布时间】:2017-04-29 07:19:22
【问题描述】:
您好,我正在尝试将 JSON 对象数组更改为 TypeScript 类。但是,每次我尝试将 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 对象。有没有抛出异常?
-
你试图将属性分配给一个没有值的变量,改为
let mark: marker = {} -
没有意外抛出异常
-
好的,我马上试试
-
知道了。我很感激这个建议。打字稿很新
标签: json angular typescript