2017-07-12 2 views
0

Ich verwende OAuth2 für die Autorisierung in meiner Ionic 2 App und die decodierte Token-Antwort (die ich von der Funktion BASE64.decode() erhalten) ist wie folgt (Schlüssel-Wert-Formular). Ich speichere es in einer Variablen namens 'Tokendata' vom Typ 'any'. Jetzt möchte ich Werte aus diesem decodierten Token extrahieren. Wenn ich einfach 'tokendata.personnelbr' mache, funktioniert es nicht. Auch wenn ich eine 'json.parse (Tokendata) oder eine json.parse (' tokendata ') mache, speichere sie in einer anderen Variablen, sage' myVar 'und versuche dann' myVar.personnelbr 'aufzurufen, dann funktioniert es auch nicht. Bitte helfen Sie mit der Lösung!Extrahieren Wert von Json Zeichenfolge in Ionic 2

{ 
"client_id":"xxx", 
"scope":"user_profile", 
"sub":"yyy", 
"amr":"external", 
"auth_time":1499753830, 
"idp":"eso_enterprise", 
"upn":"yyy", 
"email":"yyy", 
"samaccount_name":"yyy", 
"peoplekey":"1169", 
"personnelnbr":"1108", 
"given_name":"Deblina", 
"sn":"Dutta Chowdhury", 
"exp":1499, 
"nbf":1499 
} 

Das Verfahren, in dem ich die ‚personnelnbr‘ Feld unten ist für den Zugriff auf versuche gegeben:

private initializeApp(): void 
    { 
    this.platform.ready().then(() => { 
     console.log("Before login Deblina"); 
     /** 
     * Read in app configuration, get an oAuthV1 ESO token, register device with REBAR Notification Services 
     */ 
     this.configService.Initialize().subscribe(
     () => this.esoService.getV2Token().subscribe(
      (v2Token) => { 

      this.tokendata = BASE64.decode(v2Token); 
      alert("Token Deblina decoded: " + BASE64.decode(v2Token)); 
      console.log("Token Deblina decoded: " + BASE64.decode(v2Token)); 

      this.concatenatedToken = "'" +this.tokendata+ "'"; 
      alert(this.concatenatedToken); 
      console.log(this.concatenatedToken); 

      this.myVar = JSON.parse(this.tokendata); 
      alert("Now:" + this.myVar.personnelnbr); 
      console.log("Now:" + this.myVar.personnelnbr); 

      this.myVar = JSON.parse(this.concatenatedToken); 
      alert("Now:" + this.myVar.personnelnbr); 
      console.log("Now:" + this.myVar.personnelnbr); 

      }, 

      (error) => console.log(error), 
     () => { this.nav.setRoot(HomePage)} 
     ), 
     (error) => console.log(error) 
    ); 

    }); 

    } 
+0

Können Sie console.log (Tokendata) den Wert sehen, den es hat? – misha130

+0

Können Sie uns sagen, was Ihre Tokendata zurückgibt? –

+0

Hallo beide .. Es gibt nur die oben genannten Code-Schnipsel..Ich benutze eine Funktion in meinem Code, der die Token-Antwort auf die obige Form decodiert. – Debo

Antwort

1

Wenn Sie Wert extrahieren möchte nur, können Sie dies tun:

let datas = { 
      "client_id":"xxx", 
      "scope":"user_profile", 
      "sub":"yyy", 
      "amr":"external", 
      "auth_time":1499753830, 
      "idp":"eso_enterprise", 
      "upn":"yyy", 
      "email":"yyy", 
      "samaccount_name":"yyy", 
      "peoplekey":"1169", 
      "personnelnbr":"1108", 
      "given_name":"Deblina", 
      "sn":"Dutta Chowdhury", 
      "exp":1499, 
      "nbf":1499 
     }; 
for (let key in datas) { 
    console.log(key + " => " + datas[key]); 
} 
+0

Ich bin in der Lage, auf alle individuellen Zeichen des Arrays wie folgt zuzugreifen .. wo ich auf die einzelnen 'Schlüssel' in diesem Objekt – Debo

+0

@Deblina zugreifen möchte, können Sie auf Ihre json Daten wie folgt zugreifen: 'datas ['personnominbr' ] 'oder' data.personnelbr' – Mankeomorakort