如何从带有单引号和大括号的Web服务接收的JSON对象中提取数据?

时间:2015-03-16 06:33:44

标签: javascript json node.js rest

我收到一个类似于此的JSON对象,并在尝试获取雇主名称时继续提出 undefined

{
name: 'Freddy Krueger',
birthdate: 'March 16, 2015',
email: 'email@domain.com',
'employer[name]': 'Some Employer, Inc',
'employer[address]': '1428 Elm St. Springwood, OH 00666'
}

我该如何访问雇主数据? obj.name,obj.birthdate等都没问题。但是obj.'employer [name]'当然不起作用。我已经尝试了我能想到的每个版本obj.employer ['name']都不好,我得到一个错误,上面写着 TypeError:无法读取未定义的属性'name'看起来像傻事,但我谷歌的所有内容只提到你的值中使用引号,而括号是数组。与获取对中名称中带有单引号和括号的数据无关。

我已经看到他们的结构,为了匹配这个,它看起来像:

{
"name": "Freddy Krueger",
"birthdate": "March 16, 2015",
"email": "email@domain.com",
"employer": {
    "name": "Some Employer, Inc",
    "address": "1428 Elm St. Springwood, OH 00666"
}
}

还有更多数据,但这显示了我遇到问题的部分。有时,“雇主”也会有电话,传真,电子邮件,网站等。它仍然看起来和我的第一个例子一样,只是将新对添加为'雇主[无论如何'':'价值'

2 个答案:

答案 0 :(得分:2)

使用对象表示法:

 var employerName = obj['employer[name]'];
 var employerAddress = obj['employer[address]'];

工作示例:http://jsfiddle.net/rbsdp4f2/

答案 1 :(得分:0)

为了得到你必须做的名字

`obj["employer[name]"]` 

而不是

obj."employer[name]"