J'essaie d'analyser certaines données JSON de randomuser.me api pour y parvenir. J'ai trouvé quelques tutoriels en ligne, mais il se peut que quelque chose ait changé récemment dans Ionic 2, car aucun d'entre eux ne fonctionne.
Voici ce que j'ai:
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);
}
}
Dans le terminal, je peux voir l'erreur: data._body - La propriété '_body' est privée et accessible uniquement dans la classe 'Response'.
Que puis-je faire?
data._body pour data.text (),
Au lieu de data.text()
puis de l’analyser, vous devriez utiliser data.json()
this.items = data.json();
https://angular.io/docs/ts/latest/guide/server-communication.html#!#extract-data
Cela a changé dans les nouvelles versions essayez ceci
this.items= JSON.parse(data['_body']).results;
Parce que Ionic 2 a un tout petit peu changé, je pensais partager ma façon de faire.
Pour accéder à une fonction de carte, nous devons ajouter cette ligne sous vos instructions d'importation.
import 'rxjs/add/operator/map';
puis changez votre constructeur en ...
this.http.get("http://api.randomuser.me/?results=10").map(res => res.json()).subscribe(data => {
console.log("Got data");
console.log(this.data);
});
}
Nous pouvons maintenant voir une chaîne JSON dans la console.
Notez que le seul bit supplémentaire que nous avons ajouté est .map (res => res.json ()
Il y a un gars, Joshua Morony, qui fait beaucoup de vidéos d'Ionic 2 que vous devriez vérifier si vous avez du mal à obtenir les données d'une API: https://www.youtube.com/watch?v=vuc4dp0qHSc&index=33&list= PLvLBrJpVwC7ocO1r-xu218C15iE9gTWBA