NaN尝试打印json值时

时间:2015-04-20 14:59:15

标签: javascript json nan

我试图解析一个json,我将其作为查询链接中的连接的响应。

当我作为一个整体在数组中执行JSON.stringify时,我可以在console.log中看到值 但是当我尝试在数组中获取单个值时,我得到了NaN。 当我可以看到数组作为一个整体时,为什么我不能获得单个值。

这是代码

  var response = jQuery.parseJSON(data);
  var person = response.person[0];

在上面的代码中我得到数据作为ajax调用的响应

person是一个数组,我可以将数组整体字符串化。 如果我做

console.log(JSON.stringify(person));

我会得到

{"id":"someId","first-name":"someName","last-name":"someName, DMC-E, DMC-D","picture-url":"https://soempicture"}

但是当我尝试单独拍摄时

console.log(person.first-name);

我得到了NaN,并试图将其格式化为Null

我错过了什么,我应该进行字符串拆分以获取值吗?

谢谢

2 个答案:

答案 0 :(得分:7)

您无法使用句点表示法访问first-name属性,因为名称包含短划线。

代码将被解释为person.first - name,即person.first属性减去name变量。

对于名称不能为标识符的任何属性,请使用括号表示法:

console.log(person['first-name']);

答案 1 :(得分:0)

要访问包含无法出现在标识符(-)中的字符的密钥,请使用括号,即:

person["first-name"]