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

标签 javascript json node.js rest

我收到一个与此类似的 JSON 对象,并且在尝试获取雇主名称时不断出现未定义:

{
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: Cannot read property 'name' of undefined 看起来很愚蠢,但我在谷歌上搜索的所有内容都只提到在值中使用引号,这样的括号和括号用于数组。与获取名称中包含单引号和方括号的数据无关。

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

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

还有更多数据,但这显示了我遇到问题的部分。有时,“雇主”也会有电话、传真、电子邮件、网站等。它看起来仍然与我的第一个示例相同,只是添加了新对:'employer[whatever]': 'value'

最佳答案

使用对象表示法:

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

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

关于javascript - 如何从带有单引号和大括号的 Web 服务接收的 JSON 对象中提取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29070836/

相关文章:

javascript - 将参数传递给 Promise 序列

node.js - 如何为现有数据库构建Graphql后端服务器?

node.js - 在每次重新启动 EC2 时运行脚本

javascript - 使用 jQuery 设置 css 属性

php - 如何使用ajax传递字符串数组?

java - 将 JSON 数据从 txt 文件发布到 URL

ios - swift -UITableView 'unable to dequeue a cell with identifier Cell'

javascript - 从特定选择选项获取属性值

javascript - Vimeo 视频,带有使用视频标签的自定义取消静音按钮

javascript - 无法使用正则表达式将索引值放在括号内