Javascript: Greifen Sie auf verschachtelte Werte in JSON-Daten zu, indem Sie dynamische Variablennamen verwenden

8

Ich habe ein verschachteltes Javascript-Objekt wie

%Vor%

Hier kann ich auf die Felder data.profile.age.type oder data.name.type zugreifen. Keine Probleme Und wenn ich dynamische Variablennamen habe, kann ich wie folgt zugreifen. Nochmal, keine Probleme.

%Vor%

Aber hier habe ich Variablennamen wie 'name', 'profile.age', 'profile.city' usw. und natürlich kann ich nicht auf sie zugreifen als f = 'profile.age'; Daten [f] .type, die nicht funktionieren.

Kann mir irgendjemand auf einfachste und einfache Art und Weise zeigen, wie man auf sie zugreift?

Hinweis: Ich habe es versucht und es funktioniert für get.

%Vor%

obwohl Set scheint nicht einfach genug zu sein. Bitte lassen Sie mich wissen, ob es bessere Lösungen für den Einstieg und das Set gibt.

    
rsmoorthy 13.12.2010, 17:32
quelle

4 Antworten

7

Verwenden Sie eval nicht, es sei denn, dies ist absolut notwendig. :) Zumindest in diesem Fall gibt es bessere Möglichkeiten, dies zu tun - Sie können den verschachtelten Namen in einzelne Teile aufteilen und darüber iterieren:

%Vor%     
casablanca 13.12.2010, 17:39
quelle
8

Sie können die Klammern einfach verschachteln:

%Vor%     
josh3736 13.12.2010 17:36
quelle
2

Vielleicht eine Funktion, die den Pfad zu der Eigenschaft aufnimmt, an der Sie interessiert sind, und sie in Token zerlegt, die Eigenschaften darstellen. So etwas (das ist natürlich sehr grob):

%Vor%

Beispiel:

%Vor%     
HackedByChinese 13.12.2010 17:39
quelle
0

Dies verwendet die Funktion jquery.each (), um einen json-Baum mit einer String-Variablen zu durchlaufen, die ein oder mehrere "." enthalten kann oder auch nicht. Sie könnten alternativ ein Array übergeben und die .split ();

weglassen

pathString = etwas wie "person.name"

jsonObj = etwas wie {"person": {"name": "valerie"}}.

%Vor%

gibt "valerie"

zurück     
Alaina 18.04.2014 07:41
quelle

Tags und Links