Bagaimana cara mendapatkan nilai objek JSON jika namanya mengandung titik?

108

Saya memiliki array JSON yang sangat sederhana (harap fokus pada objek "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

Tapi, sayangnya, itu tidak menampilkan apa-apa.
Ketika saya mengubah "points.bean.pointsBase" menjadi smth tanpa titik di namanya - semuanya bekerja!

Namun, saya tidak dapat mengubah nama ini menjadi yang lain tanpa titik, tetapi saya perlu mendapatkan nilai ?!
Apakah ada pilihan untuk mendapatkannya?

Nik Sumeiko
sumber

Jawaban:

215

Yang Anda inginkan adalah:

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

Di JavaScript, bidang apa pun yang dapat Anda akses menggunakan. operator, Anda dapat mengakses menggunakan [] dengan versi string dari nama bidang.

Russell Leggett
sumber
27

dalam javascript, properti objek dapat diakses dengan. operator atau dengan pengindeksan array asosiatif menggunakan []. yaitu. object.propertysetara denganobject["property"]

ini seharusnya berhasil

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

Mencoba ["points.bean.pointsBase"]

TK.
sumber
4

Jika kunci / nama objek json berisi titik ......! Suka

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

Daripada Anda dapat mengakses suka

myJson["my.name"]
myJson["my.age"]
Vikas s kumar
sumber