如果JSON对象的名称包含点,如何获取它?

时间:2010-04-05 06:21:54

标签: javascript json arrays object

我有一个非常简单的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而没有点名时 - 一切正常!

但是,如果没有圆点,我无法将此名称更改为其他任何内容,但我需要获取值?!
是否有任何选择可以获得它?

5 个答案:

答案 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