Hallo, ich versuche, ein Array von JSON-Objekten in eine TypeScript-Klasse zu ändern. Die Methode scheint jedoch zu stürzen, wenn ich versuche, einem Typoskript-Attribut ein JSON-Objektattribut zuzuweisen.Typescript, das ein JSON-Objekt in Typescript-Klasse konvertiert
Typoskript Schnittstelle
export interface marker {
lat: number;
lng: number;
}
Typoskript Methode
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
}
Map Service
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);
}
ich das Thema recherchiert und versucht haben, die interger Guss anzuwenden, aber es scheint nicht zu Arbeit. Irgendwelche Vorschläge wären großartig.
Das sind keine "JSON-Objekte", sondern JavaScript-Objekte. Alle Ausnahmen ausgelöst? – zerkms
Sie versuchen, Eigenschaften einer Variablen, die keinen Wert hat, Eigenschaften zuweisen, schreiben Sie 'let mark: marker = {} 'statt –
Keine Ausnahmen überraschend – RyeGuy