如果获取JSON对象的值如果其名称包含点?

如果获取JSON对象的值如果其名称包含点?

问题描述:

我有一个非常简单的JSON阵列(请注重“points.bean.pointsBase”对象):如果获取JSON对象的值如果其名称包含点?

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”更改为不带点的名称 - 一切正常!

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

你想要的是:

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; 

只是为了利用更新的解决方案的尝试使用lodash实用 https://lodash.com/docs#get

+0

方式来拨号了。如何引用实际的方法,而不是只是粘贴到常用库的链接? – benmar 2017-09-11 15:30:59

+0

@benmar他做了,_.get是方法 – 2017-10-20 10:19:51