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

Posted

技术标签:

【中文标题】如果名称包含点,如何获取 JSON 对象值?【英文标题】:How to get objects value if its name contains dots? 【发布时间】:2011-02-04 08:26:25 【问题描述】:

我有一个非常简单的 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 时 - 一切正常! 但是,我不能将此名称更改为没有点的其他名称,但我需要获取一个值?! 有什么办法可以得到吗?

【问题讨论】:

【参考方案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"]

【讨论】:

以上是关于如果名称包含点,如何获取 JSON 对象值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Newtonsoft.Json 将包含数组数组的 json 对象解析为 C# 中的对象列表?

如何检查 json 对象是不是包含 <null>?

如何从复杂的 JSON 对象中获取值?

如果包含 json 文档作为字符串,如何从 MySQL(5.6) 列中获取值

如何连接(变量+对象键名)以点表示法获取对象值[重复]

如何获取jsonarray中 某个值