如果名称中包含点,如何获取JSON对象值?


108

我有一个非常简单的JSON数组(请关注“ 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

但是,不幸的是,它没有显示任何内容。
当我将“ points.bean.pointsBase”更改为不带点的名称时,一切正常!

但是,我不能将这个名称更改为没有点的任何其他名称,但是我需要获取一个值吗?!
有什么选择吗?

Answers:


215

您想要的是:

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

在JavaScript中,您可以使用来访问任何字段。运算符,则可以使用[]和字段名称的字符串版本进行访问。


27

在javascript中,可以使用访问对象属性。运算符或使用[]的关联数组索引。即。object.property相当于object["property"]

这应该可以解决问题

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


4

如果json对象键/名称包含点......!喜欢

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

比你可以像访问

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.