问题描述
我与下一个json类似:
{
'igor': {'password': '12345678', 'color': 'white'),
'ruslan': {'password': '87654321', 'color': 'black')
}
而且也有变数
var name = 'igor';
如何使用此变量检测名称来获取密码值? 我接下来尝试了:
obj[name['password']]
但是它返回的是undefined。 还尝试了:
obj.name['password']
同样,它返回未定义的。 我应该如何获得该价值? 谢谢。
1楼
正如Nano所评论的那样,要使用键“ igor”访问对象的“ password”,您需要使用obj[name]['password'] 。
这是因为您有两个对象,一个对象以“ igor”作为键,另一个对象以“ ruslan”作为键。
您也可以使用
var igor = obj['igor'];
var igorsPassword = igor['password'];
另外unixarmy的格式没有错,下面是正确的。
var igor = obj.igor;
var igorsPassword = igor.password;
话虽这么说,但是如果属性名称中包含空格,则必须使用obj['property name']形式进行访问,因此无法使用obj.property name进行操作,因为当property name与name之间的空格用作语法分隔符时,不在字符串/正则表达式中。
2楼
您的JSON示例无效!
无论如何,您可以使用以下语法: obj[name].property 。