2014-11-02 3 views
-1

У меня есть следующий объект (так называемый message_tags):Как получить значения из этого объекта

{ 
    "88": [ 
    { 
     "id":"864794113531613", 
     "name":"Luis Angel Rodriguez", 
     "type":"user", 
     "offset":88, 
     "length":20 
    } 
    ], 
    "112": [ 
    { 
     "id":"640891773501", 
     "name":"Carl Champion Jr.", 
     "type":"user", 
     "offset":112, 
     "length":17 
    } 
    ] 
} 

я могу получить значения из него, используя что-то вроде этого:

var id = message_tags[88][0].id 

но где он говорит 88 и 112 всегда будут разными числами, и единственный способ, которым я могу определить, какое количество это будет, - получить смещение, которое, конечно, если дальше внутри объекта.

Как я могу перебирать этот объект, не зная, что это за числа? (Не может использовать message_tags[0] как он возвращает неопределенные

ответ

1

Вы можете перемещаться по объекту, как это:

for (var thisKey in message_tags) { 
    if (message_tags.hasOwnProperty(thisKey)) { 
    console.log(thisKey); 
    console.log(message_tags[thisKey]); 
    } 
} 

Если вы 100% уверены, что прототип цепь чиста, вы можете оставить из .. hasOwnProperty() проверка Если вы не знаете, что означает, безусловно, оставит его в

+0

отл Отлично, спасибо! –

1

Попробуйте это:

obj = { 
    "88": [ 
    { 
     "id":"864794113531613", 
     "name":"Luis Angel Rodriguez", 
     "type":"user", 
     "offset":88, 
     "length":20 
    } 
    ], 
    "112": [ 
    { 
     "id":"640891773501", 
     "name":"Carl Champion Jr.", 
     "type":"user", 
     "offset":112, 
     "length":17 
    } 
    ] 
} 

for (var key in obj) { 
    if (obj.hasOwnProperty(key)) { 
    alert(key + " -> " + obj[key]); 
    } 
} 
+0

хороший, спасибо! –