{
"TEAM-9f0ca1c0-5d32-11e3-9cf7-782bcb4ce61a": {
"queue": "RANKED_TEAM_5x5",
"name": "Veigar's Scouts",
"entries": [
{
"isHotStreak": false,
"isFreshBlood": false,
.... etc ...
我想参考这个字段:" TEAM-9f0ca1c0-5d32-11e3-9cf7-782bcb4ce61a",但这个值不是常量。当值不恒定时,如何引用特定字段?
答案 0 :(得分:2)
我假设您正在处理反序列化的对象图,而不是JSON字符串。
您可以使用for-in
循环浏览顶级对象的属性名称(键),并查找以TEAM-
开头的那个。
例如:
var obj = /* ... get the object; if you really have a string, use JSON.parse... */;
var key;
var value;
for (key in obj) {
if (key.substring(0, 5) === "TEAM-") {
value = obj[key];
break;
}
}
我在第一个找到的地方停了下来。请注意,访问属性名称(键)的顺序是未定义,因此如果可能有多个匹配的属性名称,则可能需要添加逻辑以选择一个。
for-in
枚举(循环)对象的可枚举属性,允许您依次访问每个属性名称。在JavaScript中,您可以通过两种方式引用属性:使用文字符号(foo.bar
)或带括号的符号(foo["bar"]
)。在后一种情况下,字符串名称可以是任何表达式的结果,包括变量查找。因此,由于我们将属性名称作为字符串(在变量key
中),因此我们希望在检索值时使用括号表示法:obj[key]
。