如果它的名字包含点,如何得到JSON对象的值?

我有一个非常简单的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”改成带点的时候 – 一切正常!

不过,我不能把这个名字改成其他任何东西,但是我需要得到一个价值?
有什么select可以得到它吗?

你想要的是:

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

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

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

这应该做的伎俩

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

试试["points.bean.pointsBase"]

只要使用更新的解决scheme尝试使用lodash实用程序https://lodash.com/docs#get