如何得到对象值,如果其名称包含点?

我有一个非常简单的数组(请把注意力集中在以 "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"改成名称中没有点的东西时,一切都正常。

然而,我不能改变这个名字到任何其他没有点,但我需要得到一个值?还有别的选择吗?

154191 次浏览

你想要的是:

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

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

试试 ["points.bean.pointsBase"]

在 javascript 中,对象属性可以通过。操作符或使用[]进行关联数组索引。也就是说。object.property等于 object["property"]

这个应该能行

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

如果 json object key/name 包含 dot... ... ! like

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

比你可以访问喜欢

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