我有来自REST服务的JSON有效负载,如下所示:
var jsonify = JSON.stringify(theReturnedData);
console.log(jsonify) =
{
"f-012839": {
"name": "Bob",
"email": "asdf@gmail.com"
}
}
如何在不知道“f-012839”的情况下访问电子邮件值?
到目前为止,我尝试的是没有成功的:
var name = jsonify[0].name;
var name = jsonify.name;
“f-012839”值是动态的,我不会事先知道它是什么。如果我能够获得“名称”和“电子邮件”元素而不必知道“f-012839”键是什么,那就太好了。或者,是否可以获取返回的JSON的子集,以便不是具有上述值,而是可以是这样的:
{
"name": "Bob",
"email": "asdf@gmail.com"
}
如果可能的话,我应该能够通过简单地执行以下操作来获得任何这些值,对吗?
var name = jsonify.name;
非常感谢任何帮助。谢谢!
答案 0 :(得分:7)
for(var key in theReturnedData) {
theReturnedData[key] // This is the object you want access to
}
更新还要确保对每个密钥执行检查。您需要过滤掉可以从对象Prototype继承的属性(许多框架将自定义属性添加到对象Prototypes。您可以通过Object.hasOwnProperty(property_name)检查它,所以基本上使用此循环:
for(var key in theReturnedData) {
if(!theReturnedData.hasOwnProperty(key)) continue;
theReturnedData[key]
}
答案 1 :(得分:0)
for(field in JSON.parse(jsonify)) {
firstObject = jsonify[field];
console.log(firstObject.name);
console.log(firstObject.email);
}