一直在寻找一个小时或者o找不到我要找的东西。任何帮助表示赞赏。
我有一个来自ajax调用的JSON对象,其中包含一些带有数字键的其他对象。
例如
{"1" : { "Name" : "George", "DOB" : "11/1/88", "NickName" : "Porky" },
"2" : { "Name" : "Pete", "DOB" : "6/6/85", "NickName" : "Bozo" }}
我现在想要独立访问这些对象中的属性。例如:
for(var key in obj) {
alert(obj. something here .Name);
}
但我不能为我的生活找到合适的语法。我试过......
obj.1.Name(我看过这个,每个对象的键是一个字符串而不是一个数字)
和...
obj[1].Name
有人可以把我从痛苦中解救出来吗?我怎么说,创建一个[Name1, Name2, etc...]
的数组?
答案 0 :(得分:2)
您正在寻找括号表示法:
for (var key in obj) {
alert(obj[key].Name);
}
在JavaScript中,您可以使用点表示法和文字属性名称(obj.foo
)或括号表示法和字符串 *来访问对象属性属性名称(obj["foo"]
)。在括号表示法中,字符串可以来自任何表达式,包括变量查找。
直播示例:
var obj = {
"1": {
"Name": "George",
"DOB": "11/1/88",
"NickName": "Porky"
},
"2": {
"Name": "Pete",
"DOB": "6/6/85",
"NickName": "Bozo"
}
};
for (var key in obj) {
snippet.log(obj[key].Name);
}

<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
*在ES6括号中,表示法也支持Symbol
属性名称。