我有一个非常简单的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”改为smth而没有点名时 - 一切正常!
但是,如果没有圆点,我无法将此名称更改为其他任何内容,但我需要获取值?!
是否有任何选择可以获得它?
答案 0 :(得分:177)
你想要的是:
var smth = mydata.list[0]["points.bean.pointsBase"][0].time;
在JavaScript中,您可以使用的任何字段访问。运算符,您可以使用[]和字段名称的字符串版本进行访问。
答案 1 :(得分:24)
在javascript中,可以使用对象属性进行访问。运算符或使用[]进行关联数组索引。即。 object.property
相当于object["property"]
这应该可以解决问题
var smth = mydata.list[0]["points.bean.pointsBase"][0].time;
答案 2 :(得分:16)
尝试["points.bean.pointsBase"]
答案 3 :(得分:1)
如果json对象键/名称包含点......!喜欢
var myJson = {"my.name":"vikas","my.age":27}
比你可以访问
myJson["my.name"]
myJson["my.age"]
答案 4 :(得分:0)
只是为了使用更新的解决方案尝试使用lodash实用程序 https://lodash.com/docs#get