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?

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.


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;

19

Versuchen ["points.bean.pointsBase"]


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"]

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.