2017-04-13 2 views
0

Ich erhalte eine Antwort in JSON-Form wie unten. Wie gehe ich durch, um den Benutzer von person1 und person2 anzuzeigen? Ich werde immer undefiniert in meiner Konsole. Was mache ich nicht richtig?Schleife gründlich Json-Objekt - JS

Daten

{ 
"person1" : { 
"user": "David" , 

}, 
"person2" : { 
"user": "Crave" , 
} 
} 

Funktion

this.service.fetch(message){ 

     display1 = message.person1.user; 
     display2 = message.person2.user; 
} 
+0

Was ist mit all den Leerzeichen in Ihrem Benutzerschlüssel? –

+0

Duplikat von http://StackOverflow.com/Questions/684672/How-do-i-loop-through-o-en-umerate-a-javascript-object –

+0

@AleksandarMisich, Leerzeichen im Benutzerschlüssel können Fehler verwenden? – XamarinDevil

Antwort

1

Aufgrund des Abstands zwischen den Attributen erfordert die Arbeit mit diesem json-Objekt die Notation []. z.B. json[" person1 "][" user "]. Wenn Sie den Abstand entfernen, können Sie die Notation . verwenden. Zum Beispiel:

{ 
    "person1" : { 
    "user": "David", 
    }, 
    "person2" : { 
    "user": "Crave", 
    } 
} 

dann durch das Objekt json Schleife, können wir eine Verwendung für in-einer Schleife durch den Schlüssel des Objekts (in diesem Fall key = [person1, person2]). Wenn wir annehmen, dass die Variable users gleich dem obigen json-Objekt ist:

2

Es gibt Räume in Ihrem Schlüsselnamen. Wenn Sie die Leerzeichen vor und nach dem Benutzer entfernen, um "Benutzer" zu machen, und vor und nach "Person1", um es zu "Person1" zu machen, sollte es funktionieren.

0

sollte etwas in diesen Zeilen gut funktionieren. Sie können problemlos die gleiche Logik auf Ihr Problem anwenden.

var data = 
{ 
"person1":{ 
"user":"David"}, 
"person2":{ 
"user":"Crave" 
} 
}; 

function show_data(){ 
console.log(data.person1.user); 
console.log(data.person2.user); 
} 

show_data(); 

Dieses einfach macht es einfach, das Objekt einer Variablen, zuweisen und es in der showdata() Funktion zugreifen.

Verwandte Themen