2015-05-12 71 views
0
var data = { 
    "DYNAMIC_KEY/VALUE_A":{ 
     "DYNAMIC_KEY/VALUE_1":{ 
      "key_1":"value_1", 
      "key_2":"value_2", 
      "key_3":"value_3" 
     }, 
     "DYNAMIC_KEY/VALUE_2":{ 
      "key_1":"value_1", 
      "key_2":"value_2", 
      "key_3":"value_3" 
     }, 
     "DYNAMIC_KEY/VALUE_3":{ 
      "key_1":"value_1", 
      "key_2":"value_2", 
      "key_3":"value_3" 
     } 
    }, 
    "DYNAMIC_KEY/VALUE_B":{ 
     "DYNAMIC_KEY/VALUE_1":{ 
      "key_1":"value_1", 
      "key_2":"value_2", 
      "key_3":"value_3" 
     }, 
     "DYNAMIC_KEY/VALUE_2":{ 
      "key_1":"value_1", 
      "key_2":"value_2", 
      "key_3":"value_3" 
     }, 
     "DYNAMIC_KEY/VALUE_3":{ 
      "key_1":"value_1", 
      "key_2":"value_2", 
      "key_3":"value_3" 
     } 
    } 
} 

alert(data[DYNAMIC_KEY/VALUE_A[DYNAMIC_KEY/VALUE_1].key_1]); 

alert(data[DYNAMIC_KEY/VALUE_A][DYNAMIC_KEY/VALUE_1]["key_1"]); 

我尝试了几种解决方案,但它没有!JavaScript - 从动态键/值获取动态键/值的值

有人能解释我如何继续?谢谢:)

+0

你的问题并没有多大意义。 “从动态密钥/价值到动态密钥/价值中获得价值”是什么意思?你能给我们提供一个你想要的输出的例子吗? – Andy

回答

1

对象data对象中有key s有特殊符号(/)。这是你的代码无法工作的原因。

要从此对象获得价值,必须使用key作为下标。

alert(data["DYNAMIC_KEY/VALUE_A"]["DYNAMIC_KEY/VALUE_1"].key_1); 

或者对于key_1,您还可以使用下标[]表示法。

alert(data["DYNAMIC_KEY/VALUE_A"]["DYNAMIC_KEY/VALUE_1"]["key_1"]); 

入住文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

1

可以使用

alert(data['DYNAMIC_KEY/VALUE_A']['DYNAMIC_KEY/VALUE_1']['key_1']); 

DEMO