İsmi nokta içeriyorsa JSON nesnelerinin değeri nasıl elde edilir?


108

Çok basit bir JSON dizim var (lütfen "points.bean.pointsBase" nesnesine odaklanın ):

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

Ancak maalesef hiçbir şey göstermiyor. "Points.bean.pointsBase" yi adında nokta olmadan
değiştirdiğimde - her şey çalışıyor! Ancak, bu adı nokta olmadan başka bir şeyle değiştiremem, ancak bir değer almam gerekiyor mu ?! Almak için herhangi bir seçenek var mı?


Yanıtlar:


215

İstediğin şey:

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

JavaScript'te, herhangi bir alana. operatör, alan adının bir dize sürümüyle [] kullanarak erişebilirsiniz.


27

javascript'te nesne özelliklerine ile erişilebilir. operatörü veya [] kullanarak ilişkilendirilebilir dizi indeksleme ile. yani. object.propertyeşdeğerdirobject["property"]

bu hile yapmalı

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


4

Eğer json nesne anahtarı / adı nokta içeriyorsa ......! sevmek

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

Gibi erişebilirsin

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.