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?

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.


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;


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.