[Angular 4] Bonne récupération des attributs lors appel web service
Bonjour,
J'ai mis le code suivant pour récupérer les attributs qui sont retournés par une valeur de type JSON retournée par l'appel d'un web service :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| let var_url_donnerConnection=this.AppService.getUrlDonnerConnection(var_email,var_pwd);
this.http.get(var_url_donnerConnection,this.AppService.getOptions())
.subscribe(
data => {Mydata=JSON.stringify(data);
let obj=JSON.parse(Mydata);
let obj2=obj[Object.keys(obj)[0]];
let obj3=null;
eval("obj3 = ("+obj2+")");
//les identifiants renseignés sont-ils corrects?
if (obj3.result.hasOwnProperty("liberreur")) //ici, non
{
alert(obj3.result.liberreur);
}
else //identifiants ok
{
ws_retour_Connection.Identifiant=obj3.result.Identifiant;
ws_retour_Connection.Nom=obj3.result.Nom;
ws_retour_Connection.Prenom=obj3.result.Prenom;
ws_retour_Connection.AncienneteGroupe=obj3.result.AncienneteGroupe;
ws_retour_Connection.Adresse=obj3.result.Adresse;
ws_retour_Connection.Ville=obj3.result.Ville;
ws_retour_Connection.CodePostal=obj3.result.CodePostal;
//change page
this.navCtrl.push(PagePersonnellePage, {
DataUser: ws_retour_Connection
});
this.connection_email='';
this.connection_pwd='';
}
},
err=>alert(err)
); |
Ce code fonctionne parfaitement et je me demandais s'il était possible de le simplifier, dans le bloc subscribe, j'ai voulu mettre :
Code:
let obj3=data["_body"];
Mais je n'arrive pas à accéder aux différents attributs de la valeur retournée par le web service, quand je fais
Code:
alert(JSON.stringify(data));
J'ai ceci qui est affiché:
Code:
{"_body":"{\"result\":{\"Identifiant\":\"7B659A22DF8901EB003400000711001F\",\"Nom\":\"xxxx\",\"Prenom\":\"xxxx\",\"AncienneteGroupe\":\"7 années, 9 mois et 3 jours\",\"Adresse\":\"xxxxxxxxxx\",\"Ville\":\"xxxx\",\"CodePostal\":\"xxxxx\"}}","status":200,"ok":true,"statusText":"OK","headers":{"content-type":["application/json; charset=utf-8"]},"type":2,"url":"http://win-9u040a2kpbv:8081/sdata/WSMobiliteAdeleRH/DonnerConnexion?aLogin=00180&aMDP=xxxx"}
et quand je fais :
Code:
1 2
| let obj3=data["_body"];
alert(JSON.stringify(obj3)); |
Ceci est affiché:
Code:
"{\"result\":{\"Identifiant\":\"7B659A22DF8901EB003400000711001F\",\"Nom\":\"xxxx\",\"Prenom\":\"xxxx\",\"AncienneteGroupe\":\"7 années, 9 mois et 3 jours\",\"Adresse\":\"xxxxxxxxxx\",\"Ville\":\"xxxx\",\"CodePostal\":\"xxxxx\"}}"
Merci