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ć?

Nik Sumeiko
źródło

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.

Russell Leggett
źródło
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;
z33m
źródło
19

Próbować ["points.bean.pointsBase"]

TK.
źródło
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"]
Vikas s kumar
źródło