2016-07-07 10 views
3

Ich versuche, einige JSON-Daten aus randomuser.me API zu analysieren, zu tun, dass ein paar Tutorials online gefunden, aber aparrently etwas in letzter Zeit in Ionic 2 geändert haben, weil keiner von ihnen funktioniert.Parse JSON mit Ionic 2 und Typoskript

Hier ist, was ich habe:

import {Component} from '@angular/core'; 
import {NavController} from 'ionic-angular'; 
import {Http} from '@angular/http'; 


@Component({ 
    templateUrl: 'build/pages/home/home.html' 
}) 
export class HomePage { 
    items : any; 
    //http://api.randomuser.me/?results=10 

    constructor(private navController: NavController, private http: Http) { 

    this.http.get("http://api.randomuser.me/?results=10").subscribe(data => { 
     console.log("Got data"); 
     this.items=JSON.parse(data._body).results; // this is the error 
     console.log(this.items); 
    }); 
    } 

    itemClicked(event, item) { 
    console.log(item.title); 
    //console.log(event); 
    } 


} 

Im Terminal i den Fehler sehen: data._body - Objekt '_body' ist privat und nur zugänglich innerhalb der Klasse 'Antwort'.

Was kann ich tun?

Antwort

2

Es hat sich verändert in den neuen Versionen

diese

this.items= JSON.parse(data['_body']).results;

1

Da Ionic 2 hat sich geändert verwenden sollten ein kleines bisschen, dachte ich, ich würde teilen wie ich TU es.

Um eine Map-Funktion zugreifen wir diese Linie unter den Import-Anweisungen hinzufügen müssen

import 'rxjs/add/operator/map'; 

dann Konstruktor ändern ...

 this.http.get("http://api.randomuser.me/?results=10").map(res => res.json()).subscribe(data => { 
     console.log("Got data"); 
     console.log(this.data); 
    }); 
} 

Jetzt können wir einen JSON-String in der sehen Konsole.
Hinweis das einzige Extra wir hinzugefügt ist .map (res => res.json()

Es ist ein Typ Joshua Morony, die eine Menge von Ionic 2 Videos tut, die Sie sollten überprüfen, wenn Sie zu kämpfen haben, mit Daten von einer API: https://www.youtube.com/watch?v=vuc4dp0qHSc&index=33&list=PLvLBrJpVwC7ocO1r-xu218C15iE9gTWBA

+0

wie konnte ich die Werte zu html wie {{data.something}} –

+0

Dies hier ist die Antwort ab 15/09/2017. Vielen Dank @rawturtle. –