访问其中包含“ - ”的JavaScript对象属性名称

时间:2013-11-09 03:34:20

标签: javascript json

我需要在我的应用程序中读取JSON数据。问题是我从服务获得的JSON数据包括“ - ”,当我试图阅读它时,我得到“未捕获的ReferenceError:人未被定义”。 e.g。

我有JSON对象 -

 var JSONObject ={
 "name-person":"John Johnson",
 "street":"Oslo West 16", 
 "age":33,
 "phone":"555 1234567"};

当我在控制台日志语句下面写的时候我得到“未捕获的ReferenceError:未定义的人”错误

  console.log(JSONObject.name-person);

有人可以帮助我如何阅读包含“ - ”的数据吗?我无法控制服务和数据库,所以修改源数据不在我手中。

2 个答案:

答案 0 :(得分:2)

尝试这种方式: JSONObject["name-person"]

JSON是一个对象,由键值对组成,对象键可以包含任何字符,甚至可以包含保留关键字(如for,function,if ...),以便在按键时访问对象项它没有遵守有效标识符(http://coderkeen.com/old/articles/identifiers-en.html)的规则,你必须使用[]。

这是我正在谈论的一个有趣的例子:

var strangeObject = {" ...this is a TOTALLY valid key!!! ": 123, 
                   "function": "what a weird key..."};

console.log(strangeObject [" ...this is a TOTALLY valid key!!! "], 
            strangeObject ["function"]); 

答案 1 :(得分:1)

使用[]语法访问该属性。

JSONObject['name-person']