0

我需要在我的应用程序中读取 JSON 数据。问题是我从服务中获取的 JSON 数据包括“-”,当我尝试读取它时,我收到“未捕获的 ReferenceError:未定义人员”。例如

我有以下 JSON 对象-

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

当我在控制台日志语句下方写入时,我收到“未捕获的 ReferenceError:未定义人员”错误

  console.log(JSONObject.name-person);

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

4

2 回答 2

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"]); 
于 2013-11-09T03:35:46.197 回答
1

使用[]语法访问属性。

JSONObject['name-person']
于 2013-11-09T03:35:41.717 回答