Lesen eines Javascript Object
-
08-10-2019 - |
Frage
Ich habe den folgenden Code in Javascript
var result = {
'org.apache.struts' : '4567ty5y7u8j89hjk789',
'firstName' : 'Thorpe',
'surName' : 'Obazee'
}
Wenn ich versuche Ergebnis zu lesen:
// this works
sys.puts(result.firstName) // returns Thorpe
sys.puts(result.surName) // returns Obazee
Das Problem kommt, wenn ich lese, die andere Eigenschaft
sys.puts(result.org.apache.struts) // return an error
Fehler: Erwartete ‚Typeerror: Kann nicht Lesen Eigenschaft 'Apache' undefinierter
Wie soll ich diese Zeilen lesen, so dass ich auf die Informationen zugreifen kann ich setzen?
Lösung
Sie können mit Dirac-Notation Zugriffseigenschaften, deren Namen Zeichen enthalten, ungültig für Punktnotation:
result["org.apache.struts"]
Wenn Sie weitere Ebene zu Ihrem Objekt hinzufügen mögen, so dass Sie Punktnotation verwenden können, müssen Sie ein anderes Objekt für jede Ebene erklären, z.
var result = {
org: { apache: { struts: '4567ty5y7u8j89hjk789' } },
firstName: 'Thorpe',
surName: 'Obazee'
}
alert(result.org.apache.struts);
Andere Tipps
Das Problem ist, dass man es als Ganzes Schlüssel anstelle eines anderen Objekts, greifen Sie wie result['org.apache.struts']
sind hinzuzufügen.
Sie können auch die Art und Weise Sie Ergebnis erstellen ändern:
var result = {
org : {
apache : {
struts : '4567ty5y7u8j89hjk789'
}
}
'org.apache.struts' = '4567ty5y7u8j89hjk789',
'firstName' = 'Thorpe',
'surName' = 'Obazee'
}
Das Problem ist, dass Ihre variable Punkte in ihm hat. Ich würde, dass Javascript Mandate denkt, das als verschachtelte Objekte zu interpretieren, die nicht wirklich existieren. So verwenden
result["org.apache.struts"]
, um den Wert zu erhalten.
Sie werden zum Gebrauch haben ‚:‘ zwischen den Etiketten und Werten des Objekts und definieren ‚org.apache‘ als auch Objekt. Wie folgt aus:
var result = {
org: {apache: {struts: '4567ty5y7u8j89hjk789'}},
firstName: 'Thorpe',
surName: 'Obazee'
}
Wenn Sie uns ‚org.apache.struts
‘ als echtes Label wollen, Antwort Andy E ist die Lösung.