안녕하세요, JSON 객체 배열을 TypeScript 클래스로 변경하려고합니다. 그러나이 메소드는 Json 객체 속성을 타이프 스크립트 (titcript) 애트리뷰트에 할당하려고 할 때마다 크래시되는 것처럼 보입니다.Typescript JSON 객체를 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
}
내가 문제를 연구 한과 interger 캐스트를 적용하는 시도 있지만하지 않는 것
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 개체"가 아니라 자바 스크립트 개체입니다. 예외가 발생 했습니까? – zerkms
값이없는 변수에 속성을 할당하려고하면 'let mark : marker = {}'를 대신 쓰십시오. –
놀랍게도 예외가 발생하지 않습니다 – RyeGuy