2015-02-12 3 views
0

Я работаю с объектом JSON, который выглядит следующим образом:Как перемещаться по объекту JSON с номерами?

entire 
    text 
    body 
     div 
     0 
     1 
     2 
     ... 
     30 

В настоящем время, как я доступ к содержимому в течение 0-30 является следующим кодом, где я только что для каждого над всем, как только я получаю к div. Полагают, что для некоторых чисел причина не работать, поэтому я не могу сделать entire.text.body.div.0

entire.text.body.div.forEach(function(example) { 
    // do stuff here 

}); 

Почему я спрашиваю? Прямо сейчас у меня возникает проблема, когда я пытаюсь сделать что-то подобное выше, пытаясь получить доступ к содержимому того же объекта JSON. В частности, со следующим JSON, я пытаюсь получить значение атрибута и делать что-то подобное, как указано выше, но он не работает.

entire 
    text 
    body 
     div 
     0 
      p 
      0 
      1 
       attribute: value 
     1 
     2 
     ... 
     30 

Код Я пытаюсь использовать .. но опять он не работает, и я не могу получить доступ к атрибуту/значению.

entire.text.body.div.forEach(function(example) { 
    // do stuff here 

    example.p.forEach(function(anotherExample) { 



}); 
+1

я могу видеть ваши данные как фактический формат json? –

ответ

0

Использование [] для доступа к ним - например:

var obj = {1:"a"}; 
console.log(obj[1]); // outputs "a" 

От MDN:

аксессоры собственности обеспечивают доступ к свойствам объекта с помощью точечной нотации или брекета обозначения.

object.property или object["property"]

Типичное использование кронштейн нотация доступ к свойствам массивов или массивов как объекты или работа с свойством объекта, название которого является переменным.

Определенного практического применения обозначений квадратных скобок с кодом, рассмотрит функцию, которая перебирает свойство объекта, выполняющую определенную функцию каждого свойства -

var john = { 
    firstName: "John", 
    lastName: "Smith", 
    age: 33, 
    employer: { 
     name: "ABC Corp", 
    }, 
    0:"numeral zero" 
} 

function print(obj) { 
    console.log(obj); 
} 

function walk(obj, fn) { 
    Object.keys(obj).forEach(function(prop) { 
     if (typeof obj[prop] === 'object') { 
      walk(obj[prop], fn); 
     } else { 
      fn(obj[prop]); 
     } 
    }); 
} 

walk(john, print); 

Выход -

[email protected]:~/Desktop$ nodejs test1.js 
numeral zero 
John 
Smith 
33 
ABC Corp 
+0

Это выглядит многообещающе. Я попробую это и отчитаю. Спасибо. – Jimmy

Смежные вопросы