Jak uzyskać wartość obiektów JSON, jeśli jego nazwa zawiera kropki?


108

Mam bardzo prostą tablicę JSON (proszę skupić się na obiekcie "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

Ale niestety nic nie wyświetla.
Kiedy zmienię „points.bean.pointsBase” na coś bez kropek w nazwie - wszystko działa!

Nie mogę jednak zmienić tej nazwy na nic innego bez kropek, ale muszę uzyskać wartość ?!
Czy są jakieś opcje, aby to zdobyć?

Odpowiedzi:


215

Chcesz:

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

W JavaScript każde pole, do którego można uzyskać dostęp za pomocą. operator, do którego można uzyskać dostęp za pomocą [] z wersją łańcuchową nazwy pola.


27

w javascript do właściwości obiektu można uzyskać dostęp za pomocą. operator lub z asocjacyjnym indeksowaniem tablic przy użyciu []. to znaczy. object.propertyjest równaobject["property"]

to powinno załatwić sprawę

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


4

Jeśli klucz / nazwa obiektu json zawiera kropkę ......! lubić

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

Niż możesz uzyskać dostęp do takich jak

myJson["my.name"]
myJson["my.age"]

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.