Wie erhalte ich den Wert von JSON-Objekten, wenn der Name Punkte enthält?

107

Ich habe ein sehr einfaches JSON-Array (bitte konzentrieren Sie sich auf das Objekt "points.bean.pointsBase" ):

var mydata =   
{"list":  
  [  
    {"points.bean.pointsBase":  
      [  
        {"time": 2000, "caption":"caption text", duration: 5000},  
        {"time": 6000, "caption":"caption text", duration: 3000}  
      ]  
    }  
  ]  
};  

// Usually we make smth like this to get the value: 
var smth = mydata.list[0].points.bean.pointsBase[0].time; 
alert(smth); // should display 2000

Leider wird nichts angezeigt.
Wenn ich "points.bean.pointsBase" in smth ohne Punkte im Namen ändere , funktioniert alles!

Ich kann diesen Namen jedoch nicht ohne Punkte in etwas anderes ändern, aber ich muss einen Wert erhalten?!
Gibt es irgendwelche Möglichkeiten, um es zu bekommen?

Nik Sumeiko
quelle

Antworten:

214

Was Sie wollen ist:

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;

In JavaScript jedes Feld, auf das Sie mit dem zugreifen können. Operator, auf den Sie mit [] mit einer Zeichenfolgenversion des Feldnamens zugreifen können.

Russell Leggett
quelle
27

In Javascript kann mit auf Objekteigenschaften zugegriffen werden. Operator oder mit assoziativer Array-Indizierung mit []. dh. object.propertyist äquivalent zuobject["property"]

das sollte den Trick machen

var smth = mydata.list[0]["points.bean.pointsBase"][0].time;
z33m
quelle
19

Versuchen ["points.bean.pointsBase"]

TK.
quelle
4

Wenn der json-Objektschlüssel / -name einen Punkt enthält ......! mögen

var myJson = {"my.name":"vikas","my.age":27}

Dann können Sie gerne darauf zugreifen

myJson["my.name"]
myJson["my.age"]
Vikas s Kumar
quelle