2017-10-02 7 views
0

Hier mein Code ist, und wenn die console.log (Daten) in BrowserAngular 4 JSON String-Array

app.component.ts: 34 [{ "SemesterId": "Fall 2017"}, {“ SemesterId ":" Frühling 2017 "}]

Wie kann ich diese JSON-Zeichenfolge in ein Array konvertieren und anzeigen? this.result1 = Daten ['SemesterId']; funktioniert nicht. Bitte schau es dir an.

interface semester { 
    SemesterId: string; 

    } 

@Component({ 
selector: 'app-root', 
template: ` 
<ul> 
    <li *ngFor="let h of result1">{{h}}</li> 
    </ul> 
`, 
styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
title = 'app'; 

constructor(private http: HttpClient) { 

} 

result1 :string; 
r1:object; 
ngOnInit(): void { 
    this.http.get('http://localhost:13043/students/courses/all').subscribe(
    data=>{ 
     this.result1=data['SemesterId']; 
     console.log(data); 
    }  
) 
    } 

} 
+0

Correct fix: result1: Objekt; Dann this.result1 = (JSON.parse (data.toString())). Funktioniert alles! –

Antwort

1

Ihren Dienst ändern

this.http.get('http://localhost:13043/students/courses/all').subscribe(
    data=>{ 
     this.result1=data; 

    }  
) 

in Ihrer Vorlage

<ul> 
    <li *ngFor="let h of result1">{{h.SemesterId}}</li> 
    </ul> 
+0

Es funktioniert nicht. \ N Kann kein anderes unterstützendes Objekt finden '[{"SemesterId": "Herbst 2017"}, {"SemesterId": "Frühling 2017"}] vom Typ' string '. NgFor unterstützt nur die Bindung an Iterables wie Arrays. –

+0

change result1: string to result1: any [] –

+0

Der Typ 'Object' kann nicht dem Typ 'any []' zugewiesen werden. Der Typ 'Objekt' kann nur wenigen anderen Typen zugewiesen werden. Wolltest du stattdessen den Typ "any" verwenden? –

0

Sie haben Ihre Antwort wie folgt zuzuordnen:

this.http.get('http://localhost:13043/students/courses/all') 
     .map((result) => result.json()) 
     .subscribe((data) => console.log(data)); 

Ihr Endpunkt zurückkehrt JSON-String und du musst t analysieren Hut in ein Objekt, um es so zu benutzen, wie du es willst.

Sie können es auch tun, eine andere Art und Weise, durch den Aufruf:

this.result = JSON.parse(data); 
+0

Es gibt mir einen Fehler. Property 'map' existiert nicht für den Typ 'Observable '. –

+0

Wie importieren Sie Observable Typings? Können Sie Ihre Importanweisungen aus dieser Datei veröffentlichen? –

+0

{Observable} aus 'rxjs/Observable' importieren; Und meine eckige Version ist 4.4.4 –