访问具有空格的 JSON 对象键 [重复]

Posted

技术标签:

【中文标题】访问具有空格的 JSON 对象键 [重复]【英文标题】:Accessing JSON object keys having spaces [duplicate] 【发布时间】:2012-05-05 21:12:29 【问题描述】:

我有以下 json 对象:

 "id": "109",
  "No. of interfaces": "4" 

以下几行工作正常:

alert(obj.id);
alert(obj["id"]);

但如果键有空格,那么我无法访问它们的值,例如

alert(obj."No. of interfaces"); //Syntax error

如何访问键名包含空格的值?有没有可能?

【问题讨论】:

这个问题是一个错误,它适用于括号 请注意There's no such thing as a "JSON Object"。你所拥有的只是一个普通的对象。 【参考方案1】:

这样做的方法是通过括号表示法。

var test = 
    "id": "109",
    "No. of interfaces": "4"

alert(test["No. of interfaces"]);

更多信息请阅读此处:

https://developer.mozilla.org/en-US/docs/Web/javascript/Guide/Working_with_Objects

【讨论】:

感谢您参考文档。令人惊讶的是,有多少答案缺少这个重要的细节。 问答有什么区别? 答案使用括号表示法test['No. of interfaces'],而不是点表示法test."No. of interfaces"【参考方案2】:

Pardeep Jain 的答案对于静态数据可能很有用,但是如果我们在 JSON 中有一个数组呢?

比如我们有i个值,得到id字段的值

alert(obj[i].id); //works!

但是如果我们需要带空格的键呢?

在这种情况下,以下构造会有所帮助([] 块之间没有点):

alert(obj[i]["No. of interfaces"]); //works too!

【讨论】:

以上是关于访问具有空格的 JSON 对象键 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何迭代由json对象中的键访问的数组[重复]

具有数据框或 Excel 文件的重复键的 JSON 文件

Json 对象中的重复键值对

将反序列化的 JSON 对象保存到具有重复子实体的数据库

将字符串转换为具有重复键的对象到数组

使用Javascript检查JSON对象是不是包含值[重复]