如果名称包含点,如何获取 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# 中的对象列表?