【问题标题】:How to get objects value if its name contains dots?如果名称包含点,如何获取对象值?
【发布时间】:2010-04-05 06:21:53
【问题描述】:

我有一个非常简单的数组(请关注以"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" 更改为名称中没有点的东西时 - 一切正常。

但是,我不能将此名称更改为没有点的其他名称,但我需要获取一个值?有什么办法可以得到吗?

【问题讨论】:

    标签: javascript arrays object


    【解决方案1】:

    你想要的是:

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

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

    【讨论】:

      【解决方案2】:

      在 javascript 中,可以使用 .运算符或使用 [] 进行关联数组索引。 IE。 object.property 等价于 object["property"]

      这应该可以解决问题

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

      【讨论】:

        【解决方案3】:

        试试["points.bean.pointsBase"]

        【讨论】:

          【解决方案4】:

          如果 json 对象键/名称包含点......!喜欢

          var myJson = {"my.name":"vikas","my.age":27}
          

          比你可以访问像

          myJson["my.name"]
          myJson["my.age"]
          

          【讨论】:

            猜你喜欢
            • 2011-02-04
            • 2016-12-23
            • 2017-11-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-05-10
            • 2010-12-05
            • 2016-09-03
            相关资源
            最近更新 更多