如果它的名字包含点,如何得到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