2013-06-26 2 views
2

자바 스크립트 객체에 인코딩 된 큰 JSON 문자열이 있습니다. 너무 다음과 같습니다자바 스크립트에서 사전 값을 얻기 위해 변수 값 가져 오기

{"stdout": "", 
"line": 23, 
"func_name": "<module>", 
"stack_to_render": [ 
    {"is_parent": true, 
    "ordered_varnames": ["__init__", "__qualname__", "num", "player", "__return__"], 
    "is_zombie": true, 
    "encoded_locals": {"__qualname__": "Team", "player": ["REF", 3], "__init__": ["REF", 2], "__return__": ["REF", 1], "num": 5}, 
    "frame_id": 1, 
    "unique_hash": "Team_f1_p_z", 
    "func_name": "Team", 
    "is_highlighted": false, 
    "parent_frame_id_list": []}], 
"ordered_globals": ["Team", "i_type", "s_type", "l_type", "t_type", "d_type",   "o_type", "make_squares"], 
"globals": {"s_type": "hello", 
    "o_type": ["REF", 8], 
    "l_type": ["REF", 5], 
    "make_squares": ["REF", 9], 
    "Team": ["REF", 4], 
    "d_type": ["REF", 7], 
    "i_type": 3, 
    "t_type": ["REF", 6]}, 
"heap": {"1": ["DICT", 
      ["__qualname__", "Team"], 
      ["player", ["REF", 3]], 
      ["__init__", ["REF", 2]], 
      ["num", 5] 
      ], 
    "2": ["FUNCTION", "__init__(self)", 1], 
    "3": ["FUNCTION", "player(self, name)", 1], 
    "4": ["CLASS", "Team", [], ["__init__", ["REF", 2]], 
      ["__qualname__", "Team"], ["num", 5], ["player", ["REF", 3]]], 
    "5": ["LIST", 1, 2, 3, 4, 5, 6, 7, 8, 9], 
    "6": ["TUPLE", 2, 3], 
    "7": ["DICT", ["dictionary", 1]], 
    "8": ["INSTANCE", "Team", ["logo", null], ["members", 0]], 
    "9": ["FUNCTION", "make_squares(key, value)", null]}, 
"event": "return"}]}' 

이의 말을하자,

var dict = "That dictionary ^^" 

을 나는 다음과 같은 코드가 있습니다 사전에는 .name을 키 값이 없기 때문에 그것은 정의되지 않은 던지고

var name = dict.ordered_globals[i]; //Let's say returns "Team" 

var ref = dict.globals.name;   
alert(ref[1]); //Should alert 4` 

합니다. 내가 원하는 것은 dict.globals.namedict.globals.Team으로 처리하는 것입니다.

답변

3

당신은 할 필요가 :

var ref = dict.globals[name] 

그렇지 않으면, name는 문자 키로 처리됩니다 대신 name 변수에 저장된 문자열. 당신은 후자를 원해. 당신이 var ref = dict.globals.name;를 사용하는 경우

0

그것은 dict.globals의 특성 중 하나로 name 취급 하겠지만, dict.globals 전혀 name 속성이 없습니다, 당신은 객체의 속성을 검색 할 경우에 대비하지만 당신은하지 않습니다 정확히 프로퍼티 이름을 알고 있거나 런타임에 변경 될 수 있습니다. 그러한 경우 리터럴 키가 var ref = dict.globals[name] 인 경우입니다. 이 도움을 희망하십시오

관련 문제